Check Boxes enable/disable
-
Aloha!
In einem Dialog soll ich bei Aktivierung/Deaktivierung einer Checkbox drei 'SubCheckboxes' ebenfalls aktivieren/deaktivieren und enablen/disablen.
(sonst kann man die drei Untergruppen beliebig selektieren, solange Set gesetzt ist, Code nicht gezeigt)Struktur also in etwa so:
-SET
-GROUP0
-GROUP1
-GROUP2Ersteres geht recht leicht ich hab's folgendermaßen gemacht:
void CSetup::OnClickSet() { if (IsDlgButtonChecked (IDC_SET)) { if (!IsDlgButtonChecked (IDC_GROUP0)) CheckDlgButton (IDC_GROUP0, 1); if (!IsDlgButtonChecked (IDC_GROUP1)) CheckDlgButton (IDC_GROUP1, 1); if (!IsDlgButtonChecked (IDC_GROUP2)) CheckDlgButton (IDC_GROUP2, 1); } else { if (IsDlgButtonChecked (IDC_GROUP0)) CheckDlgButton (IDC_GROUP0, 0); if (IsDlgButtonChecked (IDC_GROUP1)) CheckDlgButton (IDC_GROUP1, 0); if (IsDlgButtonChecked (IDC_GROUP2)) CheckDlgButton (IDC_GROUP2, 0); } }Aber wie kann ich die drei SubCheckboxes disablen bzw. wieder enablen? Es gibt eine Class CCmdUI, aber die wird nur bei Update (Menu) benutzt. Habe versucht mit GetDlgItem (IDC_GROUP0) und einem cast die Funktion Enable(FALSE) auszuführen, aber da gibts Probleme (GetDlgItem gibt ja einen Pointer vom Typ CWnd zurück).
Hat jemand eine Idee, wie man das macht - ist das erste Mal, dass ich sowas brauche. Gracias!
BT
-
Aloha,
Dein Ansatz ist genau der richtige, wenn ich Dich richtig verstanden habe, nur einen Tick anders.

((CButton*)GetDlgItem(IDC_GROUP0))->SetCheck(0);und schon ist die checkbox unchecked.
Grüße
BOA
-
Fragestellung is etwas .... ?
Meinst du etwa:GetDlgItem(IDC_GROUP0))->EnableWindow(/*TRUE/FALSE*/);
-
GetDlgItem(IDC_SECTOR0)->EnableWindow(TREU/FALSE);ist genau das, was ich gesucht habe. Danke!
CheckDlgButton (IDC_GROUP0, 0);ist in diesem Fall etwas einfacher als
((CButton*)GetDlgItem(IDC_GROUP0))->SetCheck(0);würd' ich sagen, aber danke trotzdem.
BT