Win32學習筆記 滑鼠操作

2021-04-09 09:50:58 字數 1469 閱讀 1537

1.游標型別

1)系統游標型別(windows.h):

idc_arrow 箭頭游標

idc_cross 十字游標

idc_ibeam i字游標

idc_icon 空圖示

idc_sizeall 指向四個方向的帶有箭頭的游標

idc_sizenesw 帶有指向東北方向和西南方向的箭頭的游標

idc_sizens 帶有指向南方向和北方的箭頭的游標

idc_sizenwse 帶有指向西北方向和東南方向的箭頭的游標

idc_sizewe 帶有指向東方和西方的箭頭的游標

idc_uparrow 帶有指向上方箭頭的游標

idc_wait 漏斗行游標

2)自定義游標:

游標圖案檔案:*.cur

資源宣告:游標名 cusor 游標檔案(.cur)

2.載入游標

hcursor hcursor;

hcursor=loadcursor(null,idc_ibeam);

setcursor(hcursor);

3.啟用/關閉視窗對游標響應

啟用:setcapture(hwnd);

關閉:releasecapture();

注意:對游標響應時對鍵盤不響應,故要注意開與關

4.滑鼠訊息:

1)單擊:

左鍵按下:wm_lbuttondown(訊息)與vk_lbutton、mk_lbutton(虛擬鍵值)有所不同

彈起:wm_lbuttonup

中鍵按下:wm_mbuttondown與vk_mbutton、mk_mbutton有所不同

彈起:wm_mbuttonup

右鍵按下:wm_rbuttondown與vk_rbutton、mk_rbutton有所不同

彈起:wm_rbuttonup

2)雙擊

左鍵wm_lbuttondblclk

雙擊時間間隔的設定:

setdoubleclicktime(uint);

注意:雙擊只有當註冊視窗類時,型別包括cs_dblclks時才起作用,eg:wndclass.style=cs_hredraw|cs_vredraw|cs_dblclks;

3)移動

wm_mousemove

5.訊息引數:

wparam:虛擬鍵狀態值

lparam:滑鼠位置

橫座標:int x=loword(lparam);

縱座標:int y=hiword(lparam);

6.左鍵與ctrl或shift的聯合使用

左鍵與ctrl一起按下:wparam&mk_control非零

左鍵與shift一起按下:wparam&mk_shift非零

左鍵與ctrl且與shift一起按下:wparam&mk_shift非零且wparam&mk_shift非零

注意:mk_control、mk_shift而非vk_control、vk_shift

Win32學習筆記 檔案操作

dword getlogicaldrives void 該函式的返回值是一個無符號的32位整數,每一位代表一個驅動器,bit 0代表驅動器a,bit 1代表驅動器b,bit 2代表驅動器c,依次類推。如果該位為1,表示該驅動器存在,否則不存在。dword getlogicaldrivestrings...

win32 鍵盤 滑鼠事件

onkeyuup 事件的語法為 void object1 onkeyup uint nchar,uint nrepcnt,uint nflags onkeydown 事件的語法為 void object1 onkeydown uint nchar,uint nrepcnt,uint nflags 這...

win32程式設計 滑鼠訊息

忙起來的時候感覺什麼都不缺,空下來以後才發現什麼都沒有。網易雲熱評 一 基本滑鼠訊息 wm lbuttondown 滑鼠左鍵按下wm lbuttonup 滑鼠左鍵抬起wm rbuttondown 滑鼠右鍵按下wm rbuttonup 滑鼠右鍵抬起wm mousemove 滑鼠移動訊息1 訊息引數 w...

Win32學習筆記 WM PAINT

1.wm paint 的產生 wm paint 由於視窗的互相覆蓋等,產生需要繪製的區域,那麼就會產生wm paint訊息。一般情況下通過api宣告需要繪製的區域,來產生wm paint 例如,可以使用invalidaterect宣告一個需要重新繪製的區域。2.wm paint的注意點 2.1 如果...

Win32程式設計學習筆記

之前也學了點window程式設計,但零零碎碎的,知識體系不完整。現在開始,邊複習邊學新知識。下面都是在vs2010上寫的程式。下面的程式是在視窗中打出字串,並當滑鼠左擊時畫一個圓。其中有一點要注意的,就是 beginpaint和getdc區別 beginpaint 和endpaint 可以刪除訊息佇...