Sdílet prostřednictvím


Příjem oznámení z běžných ovládacích prvků

Běžné ovládací prvky jsou podřízených oken, které odesílat zprávy s oznámením nadřazené okno při výskytu události, jako je vstup uživatele, v ovládacím prvku.

Aplikace využívá k určení, jaká akce chce uživatel ji tak, aby tyto zprávy s oznámením.Nejběžnější ovládací prvky odeslat upozornění jako WM_NOTIFY zprávy.Ovládací prvky systému Windows odeslat jako většina zpráv s oznámením WM_COMMAND zprávy.CWnd::OnNotify je obslužná rutina WM_NOTIFY zprávy.Stejně jako u CWnd::OnCommand, provádění OnNotify odešle oznámení k OnCmdMsg pro zpracování v mapách zprávy.Načítání zpráv pro zpracování oznámení je ON_NOTIFY.Další informace naleznete v tématu Technická poznámka: 61: ON_NOTIFY a zprávy WM_NOTIFY.

Případně odvozené třídy lze zpracovávat vlastní upozornění pomocí "zpráva reflexe." Další informace naleznete v tématu Technická poznámka: 62: zpráva reflexe pro ovládací prvky systému Windows.

Načtení pozice kurzoru v oznámení

V některých případech je užitečné, chcete-li zjistit aktuální pozici kurzoru při určitých oznamovací zprávy jsou přijímány společné řízení.Například by bylo užitečné k určení aktuálního umístění kurzoru při běžné ovládací prvek dostane NM_RCLICK oznámení.

Existuje jednoduchý způsob, jak toho dosáhnout pomocí volání CWnd::GetCurrentMessage.Tato metoda však získá pouze pozice kurzoru v době, kdy byla zpráva odeslána.Vzhledem k tomu, že kurzor byla přesunuta od odeslání zprávy je třeba volat CWnd::GetCursorPos Chcete-li získat aktuální pozici kurzoru.

[!POZNÁMKA]

CWnd::GetCurrentMessageměla být volána pouze v rámci popisovače zpráv.

Přidejte následující kód obslužné rutiny oznámení subjektu (v tomto příkladu NM_RCLICK):

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

V tomto okamžiku umístění kurzoru myši je uložena v cursorPos objektu.

Viz také

Referenční dokumentace

Příprava a použití ovládacích prvků

Koncepty

Ovládací prvky (MFC)