[C++/MFC] Enabel/Disable Dialogcontrols (Button, Editbox)

Spagetti_Eis

Grünschnabel
Hallo zusammen,

ich finde einfach nicht, wie ich z.B. eine Editbox oder einen Button in meinem Dialog disablen bzw. enablen kann. Ich möchte in meinem Programm, wenn ich auf Button 1 geklickt habe Button 2 enablen (Button 2 hab ich bereits im Editor von Anfang an disabled).

Muß ich dazu auf CWnd zurückgreifen? Da gibts ja diese Funktion "EnableWindow", aber die enabled mir ja nur die Mausklicks und Eingaben für den gesamten Dialog.

Wie greife ich aber auf meinem Button zu (ich hab schon die Membervariable m_button angelegt).

Vielen Dank schon im Voraus
IH
 
Moin Moin,

Schau dir mal das Klassen System an.

CButton ist von CWnd abgeleitet und kann auf die Public Funktionen von CWnd zugreifen.

Du kannst deine Button also mit m_button.EnableWindow(FALSE) deaktivieren und mit m_button.EnableWindow wieder aktivieren.

Du musst natürlich für jeden Button eine eigene MemberVariable anlegen.

Gruss Michael
 
Hallo Michael :)

danke - genauso gehts!

Einfach für alle Controls ne eigene Membervariable anlegen (egal ob es nun Buttons, Editfelder oder Checkboxen sind) und mit der Funktion "Membervariable.EnableWindow(TRUE)" die Dinger enablen.

Viele Dank mal wieder an dich :p
 
CodeFatal hat gesagt.:
Du musst natürlich für jeden Button eine eigene MemberVariable anlegen.
Muss man nicht unbedingt. Es geht z.B. auch so:
Code:
GetDlgItem(IDC_MYBUTTON)->EnableWindow(FALSE); // oder TRUE

Gruss
MCoder
 
Stimmt:)
Aber aus irgedeinem Grund verdräng ich das dauernt und leg Variablen dafür an. Vielleicht weil ich die Dinger meistens über die Create Methode initialisier und die ganzen anderen Funktiionen nutz:confused:
Vielleicht find ich das so auch nur intuitiver.

Wie dem auch sei, gesteh die falsche Wortwahl reumütig ein;-)

Gruss Michael
 
Wenn ich mit dem Control richtig arbeiten muss, nehme ich auch Member-Variablen. Aber meist passiert ja außer diesen Enable/Disable-Geschichten nichts weiter und da bin ich zu faul, dafür extra einen Member anzulegen :)
 

Neue Beiträge

Zurück