2010-07-20 236 views

回答

4

沒有窗口消息/事件表示「鼠標進入」或「鼠標離開」。 但是,這可以通過處理控件的「MouseMove」消息並捕獲鼠標輸入來檢查點是否位於控制區域內來實現。如果點位於控制區域外,則釋放捕獲。

樣本代碼檢查here

+1

你也可以看看TrackMouseEven t API函數:http://msdn.microsoft.com/en-us/library/ms646265(VS.85).aspx – humbagumba 2010-07-20 08:38:14

+0

@Hemant:你應該看到我的答案... – sergiol 2014-07-15 00:30:42

0

@Hemant:

你錯了。有消息鼠標離開鼠標懸停在WINUSER.H定義

#if((_WIN32_WINNT >= 0x0400) || (WINVER >= 0x0500)) 
#define WM_MOUSEHOVER     0x02A1 
#define WM_MOUSELEAVE     0x02A3 
#endif 
#if(WINVER >= 0x0500) 
#define WM_NCMOUSEHOVER     0x02A0 
#define WM_NCMOUSELEAVE     0x02A2 
#endif /* WINVER >= 0x0500 */ 

文檔:

WM_MOUSEHOVER message

WM_MOUSELEAVE message

你還可以用一個消息映射一樣處理:

ON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave) 
+0

不適合我 – manatttta 2015-10-02 14:06:13