C 獲取滑鼠位置及全域性檢測滑鼠行為

2022-03-13 13:23:29 字數 1423 閱讀 8282

1、獲取滑鼠位置(在螢幕的位置)

cpoint m_mouse;

getcursorpos(&m_mouse);

2、 螢幕轉化為客戶端(控制項的相對位置)& 客戶端位置轉化為螢幕位置

clienttoscreen(this->m_hwnd,m_mouse);  //客戶端位置轉化為螢幕位置

screentoclient(this->m_hwnd,m_mouse) ;  //螢幕轉化為客戶端

3、獲取控制項關於在螢幕的位置

crect  rc  

getwindowrect(&rc);

4、檢測滑鼠的action的方式多,自己用的多的是msdn上介紹的callback的滑鼠鉤子(低階鉤子)函式來實現

1> 、對滑鼠進行的幾個全域性變數進行宣告:

將這部分放置在c++類的外部  

/*

全域性變數和全域性函式定義

設定乙個滑鼠低階鉤子變數

*/hhook mouse_hook ;

lresult callback lowlevelmouseproc ( int ncode,

wparam wparam,

lparam lparam

);

bool uninstallhook();

//解除安裝

bool installhook(); //

安裝

2>、在建構函式中初始化

1 mouse_hook=null;   //

將鉤子null

3>、在初始化函式中安裝hook          

1 installhook()

4>、在析構函式中新增

uninstallhook()

5>、 在當前cpp的類外中定義宣告的三個函式

1

bool installkbhook( ) 2

1011

bool uninstallhook()

12

1920

return jud

; 21

} 22

23lresult callback lowlevelmouseproc (int ncode, wparam wparam, lparam lparam)

2453

else57}

58 mmdlg->bo_back=0;59

}60}61

}62default: break

; 63

} 64

65return

callnexthookex (null, ncode, wparam, lparam);

66 }

獲取滑鼠位置

clientx 設定或獲取滑鼠指標位置相對於視窗客戶區域的 x 座標,其中客戶區域不包括視窗自身的控制項和滾動條。clienty 設定或獲取滑鼠指標位置相對於視窗客戶區域的 y 座標,其中客戶區域不包括視窗自身的控制項和滾動條。offsetx 設定或獲取滑鼠指標位置相對於觸發事件的物件的 x 座標。...

獲取滑鼠位置

ie 下獲取 clientx y 測試測試 firefox 下獲取 clentx y 測試測試 進而核心可以公升階 var z e.clientx event.clientx 滑鼠橫座標 var f e.clienty event.clienty 滑鼠縱座標 這樣一來就可以在ie和firefox中都...

c 獲取滑鼠位置的顏色

基本思路 由於從dc中獲取顏色的方法有一定的問題,有些情況下不能很好的支援。所以採用影象的方式。1 從螢幕上獲取螢幕的影象。2 從影象上獲取座標點的顏色。話不多說,直接上 public partial class form1 form private void button1 click objec...