處理滑鼠離開視窗的訊息 (WM_MOUSELEAVE) (轉)
處理滑鼠離開視窗的訊息 (WM_MOUSELEAVE)
:namespace prefix = o ns = "urn:schemas--com::office" />
WM_MOUSELEAVE 是滑鼠離開視窗時發出的訊息,但是這個訊息與普通的滑鼠訊息不同,要收到WM_MOUSELEAVE訊息必須先TrackMouseEvent,並且每呼叫一次TrackMouseEvent 視窗只能收到一次WM_MOUSELEAVE,也就說如果要獲得WM_MOUSELEAVE訊息的話,當滑鼠重新進入視窗時必須呼叫一次TrackMouseEvent。
static BOOL bTrackLeave=FALSE;
void CMyWnd::OnMouseMove(UINT nFlags, CPoint point)
{
if (!bTrackLeave)
{
// 滑鼠第一次移入視窗時, 請求一個WM_MOUSELEAVE 訊息
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(tme);
tme.hwndTrack = m_hWnd;
tme.dwFlags = TME_LEAVE;
_TrackMouseEvent(&tme);
bTrackLeave = TRUE;
// 在這裡新增處理滑鼠進入的程式碼 :
………………………………
}
}
手工新增訊息對映和訊息處理
BEGIN_MESSAGE_MAP(CMyWnd, CWnd)
//{{AFX_MSG_MAP(CMyWnd)
………………………
//}}AFX_MSG_MAP
ON_MESSAGE(WM_MOUSELEAVE,OnMouseLeave)
END_MESSAGE_MAP()
LPARAM CMyWnd::OnMouseLeave(WPARAM wp, LPARAM lp)
{
bTrackLeave = FALSE;
// 在這裡新增處理滑鼠離開的程式碼 :
…………………………………..
return 0;
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990346/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- c++ builder裡四種處理“滑鼠離開窗體”事件的方法 (轉)C++UI事件
- C#的訊息處理方法 (轉)C#
- VCL中訊息處理初探 (轉)
- dotnet X11 視窗之間傳送滑鼠訊息 模擬滑鼠輸入
- C#視窗事件處理初探 (轉)C#事件
- 處理鍵盤輸入訊息(轉)
- C++ BUILDER 訊息處理的深入探索 (轉)C++UI
- 三、訊息的可靠處理
- php ActiveMQ的傳送訊息,與處理訊息PHPMQ
- 新視窗如何處理
- IOS 訊息推送處理iOS
- C#視窗間傳遞訊息C#
- 利用Delphi訊息處理建立類似Windows開始選單 (轉)Windows
- MFC動態建立控制元件的訊息處理 (轉)控制元件
- 文件 檢視 框架視窗間的關係和訊息傳送規律 (轉)框架
- Python-OpenCV 處理視訊(二): 視訊處理PythonOpenCV
- MPLS RSVP訊息處理——VecloudCloud
- Storm保證訊息處理ORM
- 靈活定義和處理SOAP頭訊息 (轉)
- QT滑鼠訊息分析QT
- 關於捕獲VCL沒有處理的Windows訊息 (轉)Windows
- OCX 控制元件主動傳送訊息給 MFC 視窗訊息控制元件
- .net core 訊息流處理流程
- Flink的視窗處理機制(一)
- Go 語言的錯誤訊息處理Go
- 處理檔案上傳時的訊息格式轉換問題
- VB與VC混合程式設計中處理訊息的方法 (轉)程式設計
- 3-Windows程式設計 -視窗與訊息Windows程式設計
- 【視訊處理】YUV與RGB格式轉換
- 視訊處理之OSD
- 自定義Toast及視窗透明處理AST
- 如何處理RabbitMQ 訊息堆積和訊息丟失問題MQ
- android的視窗機制分析------事件處理Android事件
- Flink處理函式實戰之四:視窗處理函式
- 前端視角看視訊處理前端
- Windows應用程式的訊息處理機制Windows
- Looper中的訊息佇列處理機制OOP佇列
- struts 如何能夠報處理正常的訊息