我用的是 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; 运行结果:   两个按钮上的鼠标都改变形状了, 但是静态文本框中的鼠标形状不改变,这到底是什么原因造成的呢,又改如何解决呢

解决方案 »

  1.   

    我只知道SDK里两句话来设置鼠标:
    HCURSOR hCur = LoadCursor(hInstance,TEXT("CROSS")) ;
    SetClassLong(hwnd,GCL_HCURSOR,(LONG)hCur);
      

  2.   

    重写静态空间,然后在OnMouseMove什么的响应函数中设置鼠标
      

  3.   

    静态文件框要设置 Notify属性为true
      

  4.   

    终于找到原因了: 静态文本框有两个相关属性一是:  Notify 通知属性  设为TRUE
    一是:  Disabled 禁用属性 设为 FALSE我的操作的时候   发现将Disabled属性设为TRUE了 所以修改Notify属性后 也没有起到作用