1.iMouse = GetSystemMetrics(SM_MOUSEPRESENT);//檢查滑鼠是否安裝 cButtons = GetSystemMetrics(SM_CMOUSEBUTTONS);///檢查滑鼠鍵個數 wdnclass.hCursor = LoadCursor(NULL, IDC_ARROW);//指定視窗的預設游標 2.滑鼠事件中lParam值包含了滑鼠位置。 x = LOWORD(lParam); y = HIWORD(lParam); wParam值指示滑鼠鍵及Shift及Ctrl鍵狀態。 wParam&MK_SHIFT !=0 //說明按滑鼠鍵時Shift鍵也按下了。 3.希望視窗接受到雙擊事件,需要設定視窗風格。 wndclass.style = CS_DBLCLKS; 4.非客戶區滑鼠訊息。 NC not client,有此標記的大多為非客戶區訊息,如NCPAINT等。 wParam、lParam與客戶區滑鼠訊息有區別。 wParam指明移動或者單擊滑鼠鍵的非客戶區位置,WINUSER.h中以HT開頭的標誌符。 lParam高、低位分別表示y、x座標,注意是螢幕的而不像客戶區內訊息的是客戶區座標,使用時需要裝換。 ScreenToClient(hwnd,&pt); ClientToScreen(hwnd,&pt); 5.WM_NCHITTEST 非客戶區點擊測試,此訊息優先於所有其他的客戶區和非客戶區滑鼠訊息。其中lParam含有滑鼠x、y值,wParam沒有實際意義。對此訊息的操作可以屏蔽所有滑鼠訊息,很強大。 6.Windows使用WM_NCHITTEST訊息產生所有其他滑鼠訊息。 7.滑鼠游標的操作 滑鼠游標有個顯示計數,通過ShowCursor(TRUE)增加,通過ShowCursor(FALSE)減少。GetCursorPos(&pt)擷取游標位置。SetCursorPos(x,y)設定位置。 8.GetWindowLong(hwnd,GWL_HINSTANCE);//擷取視窗的hinstance 9.GetCapture ReleaseCapture。擷取、釋放滑鼠,即使滑鼠不在當前視窗內。ps:滑鼠操作是當前Windows最為常用的操作之一,使用較為頻繁,但是不難,較易理解。