mfc設置鼠標狀態OnSetCursor響應函數


參考文章:1.https://bbs.csdn.net/topics/70084486

2.https://blog.csdn.net/wang15061955806/article/details/52385911

該函數專門由於設置光標的形狀,是對WM_SETCURSOR消息的響應。

1.該消息在鼠標發生任何事件時都能響應(單擊,雙擊,移動,且該函數的調用在對於鼠標響應函數之前)。

如果處理了該函數,一定要返回return TRUE,不要讓父類再處理。

一、函數原型

afx_msg BOOL CWnd::OnSetCursor(CWnd* pWnd,UINT nHitTest,UINT message);

參數一:當前鼠標位於哪個窗口(控件)上,可以通過pWnd->GetDlgCtrID()來判斷設置鼠標形狀

參數二:表示當前鼠標位於實現該函數的窗口的哪個位置(HTBORDER HTCLIENT等等,參考OnNcHitTest函數)

參數三:表示鼠標消息的值(WM_LBUTTONDOWN  WM——LBUTTONUP諸如此類)

有了這些參數,通過判斷就可以對於不同位置,不同控件,不同鼠標狀態做不同的處理了

二、改變鼠標形狀

hCursor=LoadCursor(NULL,IDC_WAIT);

SetCursor(hCursor);

return TRUE;

當改變鼠標的形狀后一定要返回TURE,表示該窗口已經處理鼠標形狀完畢,不需要再交給該窗口的父窗口處理了,如果不返回TURE,則父窗口會默認恢復光標形狀。

三、自定義判斷條件

例如當a=1時讓鼠標變成忙,=2時讓光標變成箭頭,非常靈活

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM