Steuerelemente!
-
Hallo,
eine grundsätzliche Frage zu Steuerelementen.
Zu jedem Steuerelement gehören doch 2 Merkmale:
- IDC_RADIO_....
- int-ZahlSo weit so gut. Jetzt zu meinem Problem.
Ich möchte einer Funktion die IDC_RADIO_... - Wert übergeben was auch kein Problem darstellt. Allerdings in der Fkt selbst ist dann der dazügehörigen INT-Wert nur noch vorhanden. Brauche aber die IDC_... Geschichte für ne Switch-Anweisung.Wie kann man das realisieren? Auch über die Control und Membervariablen habe ich bis jetzt noch keine Möglichkeit gefunden.
Danke für Eure Hilfe.
Gruss
S.
-
Nein, IDC_RADIO ist blos ein #define für eine Intzahl.
Du kannst also statt der Intzahl IDC_RADIO nehmen, musst
dann aber die Resource.h einbinden.Devil
-
Hallo Devil,
danke für Deine Antwort.
Jetzt weiß ich zumindest WARUM meine Idee nicht funktioniert.Aber leider auch nicht, wie ich es sonst lösen könnte
Vielleicht erläutere ich gerade nochmal mein Vorhaben:
- Dialogfeldbasierte Anwendung mit mehreren Unterdialogen (Art Wizard mit Next-Back-Buttons etc.)
- Unterdialoge werden bei Wechsel der Dialoge nicht geschlossen, sondern nur auf SW_HIDE gesetztOK, so weit so gut.
Sobald ich nun einen Dialog wechsle (z.B. über Next-Button) soll überprüft werden, ob im aktuellen Dialog an den Steuerelementen (Edit-Felder, Kombo, Chk-Boxen und RADIO-Buttons) Änderungen vorgenommen wurden.
Wenn ja, dann wird einfach ein FLAG gesetzt und beim Speichern dann in die entsprechende Routine gesprungen.BOOL CADMAconfigDlg::OnChangeHandlingData(CDialog *pDlg) { /* MessageBox, ob Daten übernommen werden sollen: Ja,Nein,Abbrechen Ja: Daten übernehmen (nächster Schritt) Nein: Daten verwerfen, alte Daten aktuell (nächster Schritt) Abbrechen: Daten so lassen, Dialog aufrufen um Daten zu korrigieren --> Return-Wert zur Überprüfung ob ABBRECHEN gedrückt wurde -> TRUE: Dialog über LastStep wieder aufrufen */ int iResult; iResult = MessageBox("Daten wurden verändert. Daten übernehmen?", "Daten übernehmen", MB_YESNOCANCEL); switch (iResult) { case IDYES: MessageBox("Daten werden übernommen"); pDlg->UpdateData(TRUE); return FALSE; case IDNO: MessageBox("Daten verworfen"); pDlg->UpdateData(FALSE); return FALSE; case IDCANCEL: MessageBox("Abbruch -> zurück zum Dialog"); return TRUE; } return FALSE; }
Bei Edit-Feldern war das ganze auch kein Problem, hier gibt es die En_Change-Methode, welche das überprüft und ich dann entsprechend mein FLAG setzen kann.
Bei den Radio-Buttons bin ich jetzt allerdings überfordert. Irgendwie finde ich dort keine Funktion die mir weiterhilft.
Vielleicht hat ja jemand eine Idee oder kann mir einen besseren Lösungsweg offerieren
Danke schonmal.
Gruss
StefanP.S.: Das muss doch wohl schon mal jemand gemacht haben, oder?
-
Da gibts doch die OnClick-Methode.