Werte über Dialog abfragen und in Variable speichern
-
Hallo zusammen,
ich habe eine Dialogbox erstellt. Diese kann ich nun über ein Menü-Punkt im Hauptfenster aufrufen.
In der Dialogbox habe ich zwei Radiobuttons und 3 Listboxen, einen OK und einen Abrechen Button.Ich würde nun gerne die Daten, die der User eingegeben hat, bei Klick auf OK in Variablen speichern.
Da ist jetzt das Problem. Ich weiß nicht, wie ich das anstellen soll.Bis jetzt habe ich für den Dialog folgen Code. Ich hoffe, dass man damit was anfangen kann:
// CAboutDlg-Dialogfeld für Anwendungsbefehl 'Info' class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialogfelddaten (Daten für das Dialogfenster Infos über...) enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung // Implementierung protected: DECLARE_MESSAGE_MAP() public: afx_msg void OnStnClickedInfo(); }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) ON_STN_CLICKED(IDC_INFO, OnStnClickedInfo) END_MESSAGE_MAP() // Anwendungsbefehl zum Ausführen des Dialogfelds void CNetzplanApp::OnAppAbout() { CAboutDlg aboutDlg; aboutDlg.DoModal(); } // CNetzplanApp Meldungshandler void CAboutDlg::OnStnClickedInfo() { // TODO: Fügen Sie hier Ihren Kontrollbehandlungscode für die Benachrichtigung ein. }
Möchte nun halt gerne wissen wie man die Werte, die eingegeben werden in (globalen) Variablen speichern kann und wo man das ganze einfügen muss.
Wäre toll, wenn mir da jemand weiter helfen könne.Vielen Dank.
Gruß
Markus T.
-
Das gehört nicht zu C# sondern zu C++, aber trotzdem:
Globale Variablen sind in C++ eine Schande und in C# unmöglich. Deswegen sollte man die nie verwenden. Überschreibe die Funktion DoModal() und verwende Referenzen um die Parameter zu verändern:
class CAboutDlg { [...] INT_PTR DoModal(int &meineVariable, double &meineVariable2); }; INT_PTR CAboutDlg::DoModal(int &meineVariable, double &meineVariable2) { CDialog::DoModal(); meineVariable=5; meineVariable2=3.8; }
-
und die Listboxen in dem dialog muss ich dann auch meineVariable/meineVariable2 nennen?
-
Dieser Thread wurde von Moderator/in CMatt aus dem Forum C# und .NET in das Forum MFC (Visual C++) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
http://www.se.fh-heilbronn.de/usefulstuff/VCPLUS6/kap02.htm
Lies da erstmal den Abschnitt: "Variablen mit Steuerelementen verbinden"
Dann haben wir eine Grundlage, anhand der man hoffentlich was erklären kann.Wobei du dir mit Listboxen nicht gerade das einfachste Beispiel ausgesucht hast.
Übe erstmal mit einem Edit, wenn das klappt, lässt sich das leichter umbauen.