MFC中修改游標形狀

2022-08-28 15:12:21 字數 1067 閱讀 2272

修改游標形狀,如果是修改系統內游標形狀,那就很簡單了,直接是用::setcursor(::loadcursor(null,makeintresource(idc_cursor1)))就可以修改成功了,但這只是更改一時的游標形狀。如果想要長久修改游標形狀,就需要在游標訊息中修改滑鼠形狀了。

1、首先,新增wm_setcursor訊息,得到訊息函式onsetcursor;

2、在訊息函式onsetcursor中,新增以下**

1 bool cmy123456dlg::onsetcursor(cwnd*pwnd, uint nhittest, uint message)

2

第二個引數就是則應為乙個字串,通過滑鼠圖案的資源id得到的乙個字串,例如在資源檢視新插入乙個cursor,為其命名為idc_cursor1,則其游標資源的id就是idc_cursor1,那麼我們就可以把第二引數設定為makeintresource(idc_cursor1);因此,我們載入自定義游標圖形就可以如下**

1 bool cmy123456dlg::onsetcursor(cwnd*pwnd, uint nhittest, uint message)

2

其中,用loadcursor載入游標,得到的大小是有系統自己規定的,我們自己沒有辦法修改。所以,當我們需要修改游標大小時,往往使用的是loadimage函式;這個方法也是大部分人載入自定義游標時所使用的方法。其**如下:

1 bool cmy123456dlg::onsetcursor(cwnd*pwnd, uint nhittest, uint message)

2

loadimage

函式功能:該函式裝載圖示,游標,或位圖。

函式原型:handle loadimage(hinstance hinst,lpctstr lpszname,uint utype,int cxdesired,int cydesired,uint fuload);

引數介紹:

loadcursorfromfile

這個函式也可以載入游標。引數直接填寫資源檔名。

修改滑鼠游標的形狀(二)

在 cmydialog 增加成員變數 hcursor m hmycurosr 並在 cmydialog 建構函式中將其初始化 m hmycurosr null 我的想法是通過 cmydialog m hmycurosr 來儲存所要使用的滑鼠游標形狀,當其為 null 的時候,則使用系統預設的滑鼠游標...

MFC中系統提供的16種游標形狀描述

在我的電腦的winuser.件中16種系統提供的游標有以下幾種 下面是標頭檔案原始定義 standard cursor ids define idc arrow makeintresource 32512 define idc ibeam makeintresource 32513 define i...

Windows滑鼠游標形狀

標準游標 可用的 windows 預定義游標 idc arrow standard arrow cursor idc ibeam standard text insertion cursor idc wait hourglass cursor used when windows performs a...