日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MFC 设置光标 SetCursor(HCURSOR hCursor)用法

發布時間:2025/3/12 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MFC 设置光标 SetCursor(HCURSOR hCursor)用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
VC++ 6.0 設定光標可以使用SetCursor(HCURSOR hCursor)來設定,如果是新手,建議在WM_SETCURSOR消息響應函數中設置,你可以在別的地方設置,但是需要自己控制光標的變化。

???????1、使用系統預定義的光標:

?????? 使用ClassWizard為視圖或者對話框添加WM_SETCURSOR消息的響應函數OnSetCursor();在函數中,使用SetCursor函數,然后要返回真,屏蔽掉系統的設置函數。

BOOL CMyProgramView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
?// TODO: Add your message handler code here and/or call default
?
???????????? SetCursor(LoadCursor(NULL,IDC_ARROW)); //設定光標為箭頭,就是我們平時用的。

?????????????return TRUE;

??????????? return CView::OnSetCursor(pWnd, nHitTest, message);
}

LoadCursor第一個參數是要載入光標的程序的實例,當使用系統預定義光標的時候,要設置為空。當要使用自定義光標的時候,設置為AfxGetInstanceHandle(),使用自定義的光標,在第2點中講。

更換LoadCursor中的第二個參數,就能得到不同的系統預定義光標。

IDC_APPSTARTING 標準的箭頭和小沙漏

IDC_ARROW 標準的箭頭 IDC_CROSS 十字光標 IDC_HELP 標準的箭頭和問號 IDC_IBEAM 工字光標 IDC_NO 禁止圈 IDC_SIZEALL 四向箭頭指向東、西、南、北 IDC_SIZENESW 雙箭頭指向東北和西南 IDC_SIZENS 雙箭頭指向南北 IDC_SIZENWSE 雙箭頭指向西北和東南 IDC_SIZEWE 雙箭頭指向東西 IDC_UPARROW 垂直箭頭 IDC_WAIT 沙漏 2、使用自定義光標: 首先在資源中添加一個光標,和你添加對話框是一樣的,然后畫圖。系統默認是黑白色彩的光標,可以修改為彩色的光標。修改方法為: 點擊NewDevieImage工具條: 然后點擊Custom,設置顏色為256色。 點擊OK。 自己畫好光標后,就可以把畫好的光標設置為系統使用的光標了: 方法還是再OnSetCursor函數中使用SetCursor函數,只是LoadCursor的參數不一樣:

BOOL CMyProgramView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
?// TODO: Add your message handler code here and/or call default
?
?????????? ?SetCursor(LoadCursor(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDC_MYCURSOR)));
??????????? ?return TRUE;

??????????? return CView::OnSetCursor(pWnd, nHitTest, message);
}

LoadCursor第一個參數要為當前應用程序的實例,使用AfxGetInstanceHandle()得到,第二個參數為剛才新建的光標的ID。這樣,程序的光標就設定為你需要的了。 3、如何動態更換光標: 很多時候需要動態的更換光標,這里建議是自己定義一些標志,然后在OnSetCursor中判斷標志,當標志為一個值的時候,設定什么光標。 4、什么時候系統會發送設置光標消息:WM_SETCURSOR。 原文的定義是這樣:The WM_SETCURSOR message is sent to a window if the mouse causes the cursor to move within a window and mouse input is not captured。 只要鼠標事件發生就會自動發送 WM_SETCURSOR從而觸發OnSetCursor。你可以再鼠標按下的函數中使用SetCursor來設置一個光標,你會發現光標確實改變了。但是只要你移動鼠標,或者放開鼠標,光標就變回去了。

總結

以上是生活随笔為你收集整理的MFC 设置光标 SetCursor(HCURSOR hCursor)用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。