手機(jī)怎么做網(wǎng)站添加背景音樂重慶黃埔seo整站優(yōu)化
本節(jié)我們講述鼠標(biāo)的一些基礎(chǔ)知識(shí)。
本節(jié)必須掌握的知識(shí)點(diǎn):
??? ????鼠標(biāo)
6.1.1 鼠標(biāo)
?????? 鼠標(biāo)是1964年由Douglas Engelbart發(fā)明的,用來(lái)取代由鍵盤輸入的繁瑣指令,簡(jiǎn)化電腦操作。早期的鼠標(biāo)是單鍵鼠標(biāo),只有一個(gè)鍵,后來(lái)逐步改進(jìn)為雙鍵鼠標(biāo)和帶滾輪的雙鍵鼠標(biāo)。
?????? ■檢測(cè)鼠標(biāo)
我們可以使用GetSystemMetrics函數(shù)來(lái)判斷是否連接了鼠標(biāo):
fMouse = GetSystemMetrics (SM_MOUSEPRESENT);
當(dāng)鼠標(biāo)已被安裝時(shí),fMouse的值為TRUE(非零),否則值為0。但是,在Windows98中,不論鼠標(biāo)是否連接上,該函數(shù)的返回值總是TRUE。在Windows NT中,該函數(shù)的返回值是正確的。
為了確定所安裝鼠標(biāo)的按鈕個(gè)數(shù),可以利用以下語(yǔ)句:
cButtons = GetSystemMecrics (SM_CMOUSEBUTTONS);
若沒有安裝鼠標(biāo),該函數(shù)的返回值為0。但是,在Windows 98下,該函數(shù)在沒有安裝鼠標(biāo)時(shí)還是返回2。
習(xí)慣用左手的用戶可以利用Windows控制面板來(lái)切換鼠標(biāo)的按鈕。程序也可以通過檢 査是否調(diào)用了帶SM_SWAPBUTTON參數(shù)的GetSystemMetrics函數(shù),判斷鼠標(biāo)的按鈕是否被切換,但是這種方法通常沒有必要。食指控制的按鈕被認(rèn)為是左鍵,即使該按鈕在物理位置上位于鼠標(biāo)的右側(cè)。但是,在一個(gè)計(jì)算機(jī)培訓(xùn)程序中,如果想在屏幕上畫出一個(gè)鼠標(biāo), 在這種情況下可能需要知道鼠標(biāo)的按鈕是否己被切換。
●在控制面板中,還可以設(shè)定鼠標(biāo)的其他參數(shù),比如鼠標(biāo)雙擊的速度。從Windows應(yīng)用 程序中調(diào)用SystemParametersinfo函數(shù)可以獲取或設(shè)定這個(gè)參數(shù)信息。
SystemParametersInfo用于獲取或設(shè)置系統(tǒng)參數(shù)的信息。它允許你查詢和修改各種系統(tǒng)設(shè)置,如桌面背景、屏幕分辨率、鼠標(biāo)速度等。
以下是 SystemParametersInfo 函數(shù)的原型:
BOOL SystemParametersInfo(
? UINT? uiAction,??????? // 操作類型
? UINT? uiParam,?????? // 相關(guān)參數(shù)
? PVOID pvParam,????? // 相關(guān)數(shù)據(jù)
? UINT? fWinIni????????? // 更新方式
);
返回值:
如果函數(shù)調(diào)用成功,返回值為非零值(TRUE)。
如果函數(shù)調(diào)用失敗,返回值為零(FALSE)。
SystemParametersInfo 函數(shù)的使用方法取決于所需的操作類型和參數(shù)。以下是一些常見的示例用法:
1.獲取桌面背景路徑:
WCHAR wallpaperPath[MAX_PATH];
SystemParametersInfo(SPI_GETDESKWALLPAPER, MAX_PATH, wallpaperPath, 0);
在這個(gè)示例中,SPI_GETDESKWALLPAPER 是操作類型,MAX_PATH 是緩沖區(qū)大小,wallpaperPath 是接收桌面背景路徑的緩沖區(qū)。
2.設(shè)置鼠標(biāo)速度:
int mouseSpeed = 10; // 設(shè)置鼠標(biāo)速度為 10
SystemParametersInfo(SPI_SETMOUSESPEED, 0, (PVOID)mouseSpeed,
SPIF_UPDATEINIFILE);
在這個(gè)示例中,SPI_SETMOUSESPEED 是操作類型,(PVOID)mouseSpeed 是要設(shè)置的鼠標(biāo)速度值,SPIF_UPDATEINIFILE 指定更新系統(tǒng)設(shè)置。
【注意】具體的操作類型、參數(shù)和更新方式取決于你想要實(shí)現(xiàn)的具體功能。詳細(xì)的操作類型和參數(shù)值可以在相關(guān)的文檔或參考資料中找到。
●獲取鼠標(biāo)位置:GetCursorPos
BOOL GetCursorPos(
? LPPOINT lpPoint // 接收鼠標(biāo)位置的指針
);
該函數(shù)用于獲取當(dāng)前鼠標(biāo)的屏幕坐標(biāo)位置,并將結(jié)果存儲(chǔ)在指定的 POINT 結(jié)構(gòu)中。
●設(shè)置鼠標(biāo)位置:SetCursorPos
BOOL SetCursorPos(
? int X, // 鼠標(biāo)的水平坐標(biāo)
? int Y? // 鼠標(biāo)的垂直坐標(biāo)
);
該函數(shù)用于設(shè)置鼠標(biāo)的屏幕坐標(biāo)位置。通過提供目標(biāo)位置的水平和垂直坐標(biāo),可以將鼠標(biāo)移動(dòng)到指定的位置。
?????? ■鼠標(biāo)熱點(diǎn)
?????? 當(dāng)Windows用戶移動(dòng)鼠標(biāo)時(shí),Windows系統(tǒng)會(huì)在顯示設(shè)備上移動(dòng)一個(gè)位圖格式的小圖 標(biāo),稱為“鼠標(biāo)指針”。鼠標(biāo)指針具有一個(gè)單像素精度的“熱點(diǎn)”(hot spot)。熱點(diǎn)在顯示設(shè)備上指示了一個(gè)精確的位置。當(dāng)我提到屏幕上鼠標(biāo)指針的位置時(shí),實(shí)際上是指熱點(diǎn)的位罝。
Windows為程序提供了幾種預(yù)定義的鼠標(biāo)指針。最常用的是斜向箭頭,稱為 IDC_ARROW(定義在WINUSER.H頭文件中的標(biāo)識(shí)符)。
箭頭的頂點(diǎn)即為熱點(diǎn)。IDC_CROSS指針(被本章后面的BLOKOUT程序所采用)的熱點(diǎn) 位于十字形圖案的中心。IDC_WAIT指針呈沙漏形(不同的Windows版本會(huì)有所不同),一般用在程序中表示忙碌狀態(tài)。程序員還可以設(shè)計(jì)屬于自己的指針。本書會(huì)在第十章講述如何設(shè)計(jì)自定義鼠標(biāo)指針。對(duì)一個(gè)具體窗口來(lái)說,默認(rèn)的鼠標(biāo)指針在定義窗口類結(jié)構(gòu)時(shí)就被指定了。是否還記得初始化窗口類時(shí)指定的鼠標(biāo)位圖?例如:
wndclass.hCursor = LoadCursor (NULL, XDC_ARR0W);
在 Windows 平臺(tái)上,可以使用以下函數(shù)來(lái)獲取和設(shè)置鼠標(biāo)熱點(diǎn)位置:
●獲取鼠標(biāo)熱點(diǎn)位置:GetIconInfo
BOOL GetIconInfo(
? HICON????? hIcon,?????? // 光標(biāo)圖標(biāo)句柄
? PICONINFO? piconinfo??? // ICONINFO 結(jié)構(gòu)指針
);
該函數(shù)用于獲取光標(biāo)圖標(biāo)的信息,包括光標(biāo)熱點(diǎn)位置。通過傳遞光標(biāo)圖標(biāo)的句柄和指向 ICONINFO 結(jié)構(gòu)的指針,可以獲取光標(biāo)圖標(biāo)的熱點(diǎn)位置。
●設(shè)置鼠標(biāo)熱點(diǎn)位置:SetCursor
HCURSOR SetCursor(
? HCURSOR hCursor // 新的光標(biāo)句柄
);
該函數(shù)用于設(shè)置當(dāng)前光標(biāo)。通過傳遞一個(gè)新的光標(biāo)句柄,可以更改當(dāng)前光標(biāo)并指定新的熱點(diǎn)位置。
■顯示和隱藏鼠標(biāo)
●顯示/隱藏鼠標(biāo)光標(biāo):ShowCursor
int ShowCursor(
? BOOL bShow // 指定是否顯示鼠標(biāo)光標(biāo)
);
該函數(shù)用于顯示或隱藏鼠標(biāo)光標(biāo)。通過傳遞 TRUE 或 FALSE 來(lái)決定是否顯示鼠標(biāo)光標(biāo)。
?■鼠標(biāo)消息
?????? 鼠標(biāo)消息是指在 Windows 系統(tǒng)中與鼠標(biāo)操作相關(guān)的消息。當(dāng)用戶與鼠標(biāo)進(jìn)行交互時(shí),系統(tǒng)會(huì)生成相應(yīng)的鼠標(biāo)消息,以通知應(yīng)用程序有關(guān)鼠標(biāo)操作的信息。
在 Windows 消息循環(huán)中,可以通過檢查消息的消息類型來(lái)確定是否為鼠標(biāo)消息,并進(jìn)一步處理相應(yīng)的操作。以下是一些常見的鼠標(biāo)消息:
●WM_MOUSEMOVE:表示鼠標(biāo)移動(dòng)消息。當(dāng)用戶移動(dòng)鼠標(biāo)時(shí),系統(tǒng)會(huì)發(fā)送該消息,并包含當(dāng)前鼠標(biāo)的屏幕坐標(biāo)。
●WM_LBUTTONDOWN:表示左鍵按下消息。當(dāng)用戶按下鼠標(biāo)左鍵時(shí),系統(tǒng)會(huì)發(fā)送該消息,并包含當(dāng)前鼠標(biāo)的屏幕坐標(biāo)。
●WM_LBUTTONUP:表示左鍵釋放消息。當(dāng)用戶釋放鼠標(biāo)左鍵時(shí),系統(tǒng)會(huì)發(fā)送該消息,并包含當(dāng)前鼠標(biāo)的屏幕坐標(biāo)。
●WM_RBUTTONDOWN:表示右鍵按下消息。當(dāng)用戶按下鼠標(biāo)右鍵時(shí),系統(tǒng)會(huì)發(fā)送該消息,并包含當(dāng)前鼠標(biāo)的屏幕坐標(biāo)。
●WM_RBUTTONUP:表示右鍵釋放消息。當(dāng)用戶釋放鼠標(biāo)右鍵時(shí),系統(tǒng)會(huì)發(fā)送該消息,并包含當(dāng)前鼠標(biāo)的屏幕坐標(biāo)。
●WM_MOUSEWHEEL:表示鼠標(biāo)滾輪消息。當(dāng)用戶滾動(dòng)鼠標(biāo)滾輪時(shí),系統(tǒng)會(huì)發(fā)送該消息,并包含滾動(dòng)的距離和方向。
這些消息是在 Windows 消息循環(huán)中使用的常見鼠標(biāo)消息,你可以在應(yīng)用程序的消息處理過程中捕獲并響應(yīng)這些消息。使用消息處理函數(shù),如 WndProc,可以通過檢查消息的消息類型來(lái)處理相應(yīng)的鼠標(biāo)操作。