Verarbeitung die WM_COMMAND-Nachricht in einem Ownerdrawn-Dialogfeld

Wenn in einem Dialogfeld-Steuerelement ein Ereignis auftritt, benachrichtigt das Steuerelement die Dialogfeldprozedur eine WM_COMMAND -Nachricht. Das Beispiel in Erstellen eines Dialogfelds Square Meal verarbeitet Benachrichtigungen aus dem Kombinationsfeld, das Listenfeld und die OK -Taste. Die Steuerelement-ID ist im niederwertigen Wort von wParam, und die Nachricht in das hohe Word der wParam.

Wenn die Steuerelement-ID IDCOMBO, ein Ereignis aufgetreten im Kombinationsfeld ist. Als Reaktion darauf ignoriert die Dialogfeldprozedur alle anderen Kombinationsfeld Feld Ereignisse außer CBN_SELENDOK, das angibt, dass eine Auswahl getroffen wurde, die Drop-down geschlossen war und die Änderungen angenommen werden sollte. Der Dialogfeld Feld-Prozeduraufrufe InitFoodList um den Inhalt des Listenfelds zurückzusetzen und die Namen der aktuellen Auswahl im Dropdown-Listenfeld hinzufügen.

Wenn die Steuerelement-ID Zonen ist, ist ein Ereignis im Listenfeld aufgetreten. Dies bewirkt, dass die Dialogfeldprozedur ignorieren alle Liste Feld Ereignisse außer LBN_DBLCLK, gibt an, dass der Benutzer ein Listenelement doppelgeklickt hat. Dieses Ereignis ist in der gleichen Weise verarbeitet, als ob eine OK -Schaltfläche ausgewählt wurde.

Wenn die Steuerelement-ID IDOK ist, hat der Benutzer die OK -Schaltfläche ausgewählt. Als Reaktion darauf die Dialogfeldprozedur fügt den Namen der ausgewählten Lebensmittel in mehrzeiligen Edit-Steuerelement der Anwendung, und ruft dann die EndDialog -Funktion, um das Dialogfeld schließen.

Wenn die Steuerelement-ID IDCANCEL ist, hat der Benutzer die Schaltfläche Abbrechen geklickt. Als Reaktion darauf fordert die Dialogfeldprozedur EndDialog schließen Sie das Dialogfeld.