Problem mit RadioButtons.....
-
Hallo,
habe folgendes Problem mit RadioButtons.
In meiner dialogfeldbasierenden Anwendung existieren mehrer Unterdialoge. Werden nun Änderungen an den Steuerelementen eines U-Dialoges vorgenommen, muss ich dies für spätere Funktionen wissen.OK, um Änderungen an RadioButtons zu merken habe ich folgende Fkt implementiert.
m_pRadioButton = Membervariable der Optionsgruppe
n_IDRadio1/2 = ID der Optionsfeldervoid CDataLink::OnChangeRadio(int &m_pRadioButton, UINT n_IDRadio1, UINT n_IDRadio2) { int nOldStatus; nOldStatus = m_pRadioButton; switch(GetCheckedRadioButton(n_IDRadio1, n_IDRadio2)) { case n_IDRadio1: if ( nOldStatus == 0 ) { TRACE ("Status hat sich nicht verändert!"); } else { TRACE ("Status verändert"); ((CADMAconfigDlg*)GetParent())->m_bChangeData = TRUE; } break; case n_IDRadio2: if ( nOldStatus == 1 ) { TRACE ("Status hat sich nicht verändert!"); } else { TRACE ("Status verändert"); ((CADMAconfigDlg*)GetParent())->m_bChangeData = TRUE; } break; } }
Die switch-Anweisung funktioniert in diesem Falle NICHT, da für die ID der Optionsfelder eben nicht IDC_RADIO_CAN, sondern der entsprechende Int-Wert (1026) genommen wird. Gebe ich die IDs direkt an, sprich wie folgt:
switch(GetCheckedRadioButton(IDC_RADIO_CAN, IDC_RADIO_COM)) { case IDC_RADIO_CAN: if ( nOldStatus == 0 ) ...
dann funktionierts wunderbar.
Da ich aber dieser Funktion ja verschiedene Optionsfelder übergeben möchte ist das dann wohl eher sehr mühsam, oder?Bin für jeden Tipp, bzw. auch andere Lösungswege sehr dankbar!!!
Gruss
S.
-
Hilft dir ((CButton*)GetDlgItem(n_IDRadio1))->GetCheck() weiter?
-
Hallo,
Danke für Deine schnelle Antwort.
Funktioniert nur leider nicht.((CButton*)GetDlgItem(n_IDRadio1))->GetCheck()
Hierüber bekomme ich auch nur den int-Wert des Optionsfeldes....!
Aber irgendwie muss das doch gehen, oder?
Wie löst man denn so etwas SINNVOLLER?Bin für alle Tipps und Ratschläge offen.
Danke.
Gruss
S.