我正在构建MFC应用程序,其中有CDialog和来自CStatic的子控件。在MFC的CStatic中消耗事件并将它们传递给父项
我想接收CStatic控件的鼠标事件,所以我设置"Notify"
为true。现在我可以直接通过消息映射接收消息事件MyStatic
:
class CMyStatic : public CStatic
{
afx_msg void OnLButtonDown(UINT nFlags, CPoint point); // Gets invoked
DECLARE_MESSAGE_MAP()
}
的问题是,从现在父的CDialog不接收鼠标事件,当鼠标移动到MyStatic
孩子。我可以从MyStatic
手动发送它们,但有什么办法让它们自动通过?并且仍然能够使用消息映射在MyStatic
上接收它们?
Roel,谢谢你的解释。但是,除非设置SS_NOTIFY,否则我无法使用消息映射接收消息。也许这是一些奇怪的MFC行为? – 2010-01-21 00:50:23
尝试在您的CStatic中捕获WM_MOUSEMOVE并在其中执行SetFocus()。 – Roel 2010-01-21 08:57:26