設定滑鼠在對話方塊某個區域的響應,可以新增wm_mousemove訊息響應,並在onmousemove()函式中實現操作。
但是,控制項其實也是乙個對話方塊。所以,如果要設定滑鼠在控制項所在範圍內的事件,用wm_mousemove是行不通的。
解決方法:
過載onsetcursor()方法。
步驟:1.開啟對應對話方塊的類嚮導classwizard。
2.在訊息對映messagemaps中新增訊息message:wm_setcursor。
3.然後程式**中會新增進函式:
onsetcursor(cwnd* pwnd, uint nhittest, uint message
4.在該函式中新增if語句,其中的條件語句判斷是否到達指定控制項,
如:if(pwnd == getdlgitem(idc_btn_modify))
5.在if語句中將滑鼠設定成目標樣式
setcursor(loadcursor(null, idc_hand));
//此處idc_hand是自定義的滑鼠形狀,下面再詳細解釋
整個函式的**如下:
bool chall::onsetcursor(cwnd* pwnd, uint nhittest, uint message)
return cdialog::onsetcursor(pwnd, nhittest, message);}
*滑鼠形狀
滑鼠的形狀由setcursor函式的第二個引數決定,表示游標資源。
1.系統游標資源名稱
標準的箭頭和小沙漏
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.自定義游標形狀
在stdafx.h中,或者對應對話方塊的標頭檔案中巨集定義:
#ifndef idc_hand
#define idc_hand makeintresource(32649)
#endif
①以上表示使用手型,其實也屬於系統圖示,loadcursor的第一引數為null。
VC 設定游標(滑鼠)形狀
一 從檔案載入游標圖示 hcursor hcur loadcursorfromfile anicur.ani 載入游標 setclasslong getsafehwnd gcl hcursor,long hcur 二 載入系統游標 setcursor loadcursor null,idc hand...
vb MousePointer 滑鼠形狀
mousepointer 屬性用來顯示滑鼠箭頭的形狀的。可在c windows cursors 找到這些形狀。常數 值 描述 vbdefault 0 預設值 vbarrow 1 箭頭 vbcrosshair 2 十字線 vbibeam 3 i 型標 vbiconpointer 4 圖示 vbsize...
CSS 滑鼠形狀
css樣式中滑鼠形狀的改變是通過cursor屬性來決定的,如下所示 cursor auto hand pointer crosshair default text vertical text wait move help row resize col resize all scroll progre...