0
我想將鼠標光標更改爲自定義光標,並將其添加到名爲IDC_MY_CURSOR的項目Resource中。只要鼠標懸停在CEdit控件上,我想改變鼠標指針到我的光標。任何想法如何做到這一點?MFC將鼠標光標懸停在CEdit控件上
我想將鼠標光標更改爲自定義光標,並將其添加到名爲IDC_MY_CURSOR的項目Resource中。只要鼠標懸停在CEdit控件上,我想改變鼠標指針到我的光標。任何想法如何做到這一點?MFC將鼠標光標懸停在CEdit控件上
要覆蓋標準控件的默認行爲,您必須提供自己的實現。最直接的方式做到這一點使用MFC是從一個標準的控制實現(CEdit在這種情況下)得出:
CustomEdit.h:
class CCustomEdit : public CEdit {
public:
CCustomEdit() {}
virtual ~CCustomEdit() {}
protected:
DECLARE_MESSAGE_MAP()
public:
// Custom message handler for WM_SETCURSOR
afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
};
CustomEdit.cpp:
#include "CustomEdit.h"
BEGIN_MESSAGE_MAP(CCustomEdit, CEdit)
ON_WM_SETCURSOR()
END_MESSAGE_MAP()
BOOL CCustomEdit::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) {
::SetCursor(AfxGetApp()->LoadCursor(IDC_MY_CURSOR));
// Stop processing
return TRUE;
}
您可以使用此類動態創建一個CCustomEdit
控件。或者,您可以創建一個標準的編輯控件(動態或通過資源腳本),以及附加的CCustomEdit
一個實例(參見DDX_Control):
void CMyDialog::DoDataExchange(CDataExchange* pDX) {
DDX_Control(pDX, IDC_CUSTOM_EDIT, m_CustomEdit);
CDialogEx::DoDataExchange(pDX);
}
Thankx ...那做的工作:) –