2008年6月16日 星期一

MFC 滑鼠

概念性的紀錄

使用者經由鍵盤或滑鼠的操作
來控制系統
以MFC的架構來說
會用message pass的方式
OS處理使用者輸入的行為
然後傳遞message到 AP端
AP端 就負責處理接到什麼樣子的訊息
然後做什麼樣子的事情

這樣來說
對於訊息的認識
就是一個很重要的事情嚕
現在所定義的滑鼠訊息
包含
WM_LBUTTONDOWN/UP/DBLCLK 滑鼠左鍵訊息
WM_MBUTTONDOWN/UP/DBLCLK 滑鼠中鍵訊息
WM_RBUTTONDOWN/UP?DBLCLK 滑鼠右鍵訊息
WM_MOUSEMOVE 滑鼠移動訊息

要判斷系統目前滑鼠的左中右鍵 到底哪些有
可以用
GetSystemMetrics(SM_CMOUSEBUTTONS);

Double Click 則是會發出兩次 DOWN/UP 的message

至於滑鼠移動的狀況
則是不停的發出 WM_MOSEMOVE
OS會避免使用者不斷低移動滑鼠 造成不斷發送WM_MOUSEMOVE的狀況
會設定一個flag來處理這樣子的問題

message
WM_LBUTTONDOWN
message map (define in c or c++ files)
ON_WM_LBUTTONDOWN
corresponding function (define in header files)
(afx_msg void)OnLButtonDown

透過Facebook分享

沒有留言: