共用方式為


從通用控制項接收告知

通用控制項會傳送通知訊息至父視窗的子視窗,當事件,例如來自使用者的輸入,在控制項時發生。

應用程式依賴這些通知訊息判斷行動使用者要採用。 最常見的控制項傳送通知訊息在 WM_NOTIFY 訊息。 視窗控制項傳送大部分通知訊息在 WM_COMMAND 訊息。 CWnd::OnNotifyWM_NOTIFY 訊息的處理常式。 使用 CWnd::OnCommandOnNotify 的實作會告知訊息處理的 OnCmdMsg 在訊息對應。 處理的通知訊息對應項目是 ON_NOTIFY。 如需詳細資訊,請參閱 Technical Note 61:ON_NOTIFY 和 WM_NOTIFY 訊息

此外,衍生類別可以處理它的通知訊息使用訊息反映」。如需詳細資訊,請參閱 Technical Note 62:視窗的訊息反映

擷取通知訊息的游標位置

在某些情況下,當某些通知訊息由通用控制項時,接收決定游標的目前位置會很有用。 例如,在中,當通用控制項收到 NM_RCLICK 通知訊息時,判斷目前游標位置很有用。

有一種簡單的方式是透過呼叫 CWnd::GetCurrentMessage來完成。 不過,在這種情況下,傳送訊息時,這個方法只會擷取游標位置。 因為資料指標可能移動,因為傳送您必須呼叫 CWnd::GetCursorPos 取得目前游標位置。

注意事項注意事項

應該 在訊息處理常式內只呼叫CWnd::GetCurrentMessage

將下列程式碼加入至告知訊息的訊息處理常式的主體 (在本例中, NM_RCLICK):

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

此時,滑鼠游標位置在 cursorPos 物件中。

請參閱

參考

建立及使用控制項

概念

控制項 (MFC)