Controller-Klassen für Komponenten oder: Wie steuere ich meine Edit-Box...



  • Hallo!

    Wenn ich z.B. ein Spin-Button auf mein Dialog setze (per Resourcen-Editor), muss ich doch eine Klasse schreiben, damit ich die Komponente steuern kann.

    Z.B. bei diesem Spin-Button, wenn ich einen Wert in einer Edit-Box de- oder inkrementieren möchte.

    Kennt jemand ein paar gute Nachschlage-Seiten oder Bücher, in den erklärt wird, wie man Controller-Klassen zur Steuerung von Komponenten (Edit-Boxen, Buttons, Spin-Buttons etc.) auf dem Dialog aufbaut?

    Danke im Voraus.

    MfG



  • Du holst dir das Handle auf die einzelnen Controls mit GetDlgItem. Und dann kannst du über die Fenster-Funktionen ganz normal damit kommunizieren. Du brauchst dafür keine Klasse. (weder eine C++ Klasse noch eine Fensterklasse) 😉



  • Meinst du das: http://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/updown/updown.asp

    Prinzipiell bekommst du einfach in der Wnd-/DlgProc des Parents die entsprechenden Benachrichtigungen und kannst dort dann die gewünschten Aktionen durchführen 😉



  • Wenn man in der Dialog Box gezielt ein Element ansteuern will, z.B. eine Edit Control, dann benutzt man Window-Subclassing. Du schreibst eine eigene Nachrichtenprozedur für das gewünschte Element und ordnest diese dem Element mit dem Aufruf der Fkt SetWindowLong zu. Das macht man am besten beim Initialisieren der Dialog Box, sprich, wenn die Windowproc der Dialog Box die Nachricht WM_INITDIALOG erhält. Das ist natürlich nur die grobe Beschreibung davon, musst halt bei MSDN oder in der API Dokumentation reinschauen.


Anmelden zum Antworten