我用的是 vs2005 mfc
对话框中 有按钮 有静态文本框 重载鼠标消息处理函数 Dlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)时 发现只有按钮上的鼠标改变形状,静态文本框中的鼠标却不改变 不知道为啥 经测试,发现,pWnd->GetDlgCtrlID()不能获取静态文本框ID,这是为什么呢??? 奇怪的是 我重载Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)时 ,使用pWnd->GetDlgCtrlID()可以获得静态文本框ID 那为什么处理鼠标消息时就不可以获得呢? Dlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)中代码如下:switch (pWnd->GetDlgCtrlID())
{
case IDC_STATIC1:
{
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_CROSS));
break; }
case IDOK:
{
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_SIZEALL));
break; } case IDCANCEL:
{
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_CROSS));
break; }
default:
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW)); }
return TRUE; 运行结果: 两个按钮上的鼠标都改变形状了, 但是静态文本框中的鼠标形状不改变,这到底是什么原因造成的呢,又改如何解决呢
HCURSOR hCur = LoadCursor(hInstance,TEXT("CROSS")) ;
SetClassLong(hwnd,GCL_HCURSOR,(LONG)hCur);
一是: Disabled 禁用属性 设为 FALSE我的操作的时候 发现将Disabled属性设为TRUE了 所以修改Notify属性后 也没有起到作用