我正在構建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