Radio Button Initialisierung
-
Guten Tag,
ich möchte das der Radiobutton schon aktiviert ist, wenn sich das Fenster mit der Formview öffnet. Die Funktionen SetState(true) und SetCheck(1) brachten leider keine Aktivierung des Radiocontrolbuttons
Code:
UpdateData(true);
m_radio3d.SetState(true); //m_radio3d ist eine Control-Variable!
m_radio3d.SetCheck(1);
UpdateData(false);Danke. Gruß
speedo
-
Und wozu dann die UpdateData()-Aufrufe, wenn Du eine Controlvariable hast? Hast Du zufälligerweise auch noch eine Wertevariable? Dann haut UpdateData() das SetCheck(1) nämlich wieder mit dem Wert dieser Variablen platt. Hol Dir mal hier ein paar Anregungen: http://www.coding-help.de/optionsfelder.html
Bei Radiobuttons hat man im Vergleich zu anderen Controls das Problem mehrere Controlvariablen zu haben, aber nur eine Wertevariable. Diese Wertevariable gibt an, welcher der Buttons aktiv ist. Und vergiss nicht, die Radiobuttons im Resource-Editor zu einer Gruppe zusammenzufassen.
-
Damit funktioniert es den Radiobutton zu aktivieren:
CButton *z_Radio1=(CButton *)GetDlgItem(IDC_RADIO3D);
z_Radio1->SetCheck(1);Nun möchte ich das der Radiobutton schon aktiviert ist, wenn die Formview geladen ist. Im Konstruktor stürzt nun leider die Anwendung ab, weil denke ich der Radiobutton noch nicht existiert.
CScanObjectView::CScanObjectView()
: CFormView(CScanObjectView::IDD)
{
CButton *z_Radio1=(CButton *)GetDlgItem(IDC_RADIO3D); // Absturz
z_Radio1->SetCheck(1); // Absturz
}Wie schaffe ich es, das der Radiobutton aktiviert ist, wenn ich die Formview zu dieser wechsel?
Gruß, Carsten
-
jencas hats doch schon gesagt:
- Radiobuttons erstellen (Ressourceneditor)
- Gruppieren: beim 1. Radiobutten und bei dem Control nach dem letzten Radiobutton (Tabulatorreihenfolge, STRG+d) wird "Gruppe" auf true gesetzt
-
- Radiobutton bekommt eine int-Variable (z.B. m_nRadio)
- Jetzt kannst du z.b. im Konstruktor
, m_nRadio(1)
aufrufen, womit der zweite Button initialisiert wird! (bei 0: der erste,....)
-
Danke euch. Hatte was falsch verstanden. Nun funktioniert es 1a.
-
Die Initialisierung von Controls bei CFormView macht man WIMRE in der Regel in OnInitialUpdate().