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ů