Udostępnij za pośrednictwem


Odbieranie powiadomienia od formantów wspólnych

Formanty są okien podrzędnych, które wysyłają wiadomości powiadomień do okna nadrzędnego wystąpieniu zdarzeń, takich jak wprowadzania danych przez użytkownika w formancie.

Aplikacja korzysta z tych powiadomień, aby ustalić jakie działania użytkownik chce ją o podjęcie.Najczęściej spotykanymi formantami wysyłać komunikaty powiadamiające jako WM_NOTIFY wiadomości.Formanty programu Windows Wyślij większość wiadomości powiadomienia jako WM_COMMAND wiadomości.CWnd::OnNotify jest obsługa dla WM_NOTIFY wiadomości.Podobnie jak w przypadku CWnd::OnCommand, realizacji OnNotify wywołuje komunikat z powiadomieniem do OnCmdMsg dla obsługi w mapach wiadomość.Wpis mapy wiadomość do obsługi powiadomień jest ON_NOTIFY.Aby uzyskać więcej informacji, zobacz technicznej 61 Uwaga: wiadomości WM_NOTIFY i ON_NOTIFY.

Na przemian klasie pochodnej można obsługiwać własne wiadomości powiadomień za pomocą "odbicie wiadomości." Aby uzyskać więcej informacji, zobacz technicznej 62 Uwaga: odbicie wiadomość dla formantów systemu Windows.

Pobieranie bieżącej pozycji kursora w komunikat z powiadomieniem

Przy okazji jest przydatne do określenia bieżącej pozycji kursora, gdy niektóre wiadomości powiadomień są odbierane przez wspólną kontrolą.Na przykład, byłoby pomocne do określenia pozycji kursora, gdy odbiera wspólną kontrolą NM_RCLICK komunikat z powiadomieniem.

Istnieje prosty sposób, aby osiągnąć ten cel poprzez wywołanie CWnd::GetCurrentMessage.Ta metoda pobiera jednak tylko bieżącej pozycji kursora w momencie wysłania wiadomości.Ponieważ kursor może być przesunięty od czasu wysłania wiadomości, musisz wywołać CWnd::GetCursorPos się w bieżącej pozycji kursora.

[!UWAGA]

CWnd::GetCurrentMessagepowinna być wywoływana tylko w ramach obsługi wiadomości.

Dodaj następujący kod do treści obsługi komunikat z powiadomieniem (w tym przykładzie NM_RCLICK):

CPoint cursorPos;
cursorPos.x = GetCurrentMessage()->pt.x;
cursorPos.y = GetCurrentMessage()->pt.y;

W tym miejscu położenia kursora myszy są przechowywane w cursorPos obiektu.

Zobacz też

Informacje

Tworzenie i używanie formantów

Koncepcje

Formanty (MFC)