2009-10-09 16 views
6

Welcher Benachrichtigungscode wird mit der Meldung wm_command an die Dialogfeldprozedur gesendet, wenn ein Kontrollkästchen den Status ändert?Kontrollkästchen - Benachrichtigung ändern

Und noch wichtiger, wo würde ich in der msdn suchen, um die Benachrichtigungscodes für verschiedene Kontrollen zu finden?

Antwort

6

Beachten Sie, dass Kontrollkästchen und Optionsfelder Schaltflächen sind. So senden sie Klick- und Doppelklick-Nachrichten, BN_CLICKED und BN_DOUBLECLICKED. Wenn Sie MFC verwenden, können Sie den check-Status mit der Methode CButton::GetCheck untersuchen. Ansonsten senden Sie die BM_GETCHECK Nachricht an die Steuerung: SendMessage(button_handle, BM_GETCHECK, 0, 0);

SendMessage

  • BST_CHECKED Knopf geprüft zurückkehren wird.
  • BST_INDETERMINATE Schaltfläche ist ausgegraut und zeigt einen unbestimmten Zustand an (gilt nur, wenn die Schaltfläche die BS_3STATE oder BS_AUTO3STATE Art hat).
  • BST_UNCHECKED Schaltfläche wird gelöscht
  • Wenn die Schaltfläche einen anderen als den aufgelisteten Stil aufweist, ist der Rückgabewert Null.

Wenn Sie das Visual Studio verwenden, die einfachste Möglichkeit, eine Liste von Ereignissen zu erhalten/Nachrichten eine Steuerung senden kann, ist Ressource/Entwurfsansicht zu gehen, rechts ein Steuerelement klicken und Events wählen.

Eine Liste der gemeinsamen Kontrollen siehe: Control Library
(auf der Seite ein Popup-Menü mit den Kontrollen sehen werden, wenn Sie den Cursor auf dem Control Library Link schweben)

2

Es ist BN_CLICKED. Der untere Teil der Seite verweist auf die Schaltflächenmeldungen.

+0

Danke, dachte ich, ich hatte das versucht, aber einen Fehler gemacht. Was meinst du mit 'Der untere Teil der Seite verweist auf die Schaltfläche Nachrichten'? Welche Seite? Ich sehe, wenn ich genug wüsste, um BN_CLICKED nachzuschlagen, hätte ich zu 'Button Messages' kommen können. Wenn ich zum Beispiel über Listbox-Nachrichten erfahren möchte, wo würde ich anfangen? –

Verwandte Themen