检索通知消息中的光标位置
有时,当公共控件收到某些通知消息时,确定光标的当前位置很有用。例如,当公共控件收到 NM_RCLICK 通知消息时,确定当前光标位置很有帮助。
有一个通过调用 CWnd::GetCurrentMessage 完成此工作的简单方法。但是,此方法只在发送消息时检索光标位置。因为发送消息后光标可能已经移动,所以必须调用 CWnd::GetCursorPos 获取当前光标位置。
注意 应该只在消息处理程序中调用 CWnd::GetCurrentMessage。
将以下代码添加到通知消息处理程序体中(在此例中为 NM_RCLICK):
CPoint cursorPos;
cursorPos.x= GetCurrentMessage()->pt.x;
cursorPos.y= GetCurrentMessage()->pt.y;
此时,鼠标光标位置存储在 cursorPos
对象中。
(coming from msdn)