在对话框中,当鼠标移动到控件上如果改变鼠标光标的形状呢?         m_hCursor=AfxGetApp()->LoadCursor(IDC_CURSOR1);
if(pWnd->GetDlgCtrlID()==IDC_BUTTON1)
{
::SetCursor(m_hCursor);
}为什么不可以呢?谢谢大家帮忙了

解决方案 »

  1.   

    if(pWnd->GetDlgCtrlID()==IDC_BUTTON1)
    是否为真?
      

  2.   

    pWnd->GetDlgCtrlID()==IDC_BUTTON1应该过不去,要子类化Button,在里面重载OnMouseMove才行。
      

  3.   

    在OnSetCursor中改
    或在MouseMove中判断以后,再SetCursor
      

  4.   

    要重载 控件 的OnMouseMove消息.
      

  5.   

    重载窗口的MouseMove消息就可以了,使用GetWindowRect,ScreenToClient就可以判断是否在Button上了!
      

  6.   

    处理窗口的WM_MOUSEMOVE消息:
    void YourClass::OnMouseMove(UINT nFlags, CPoint point) 
    {
    CRect rect;
            
             m_hCursor=AfxGetApp()->LoadCursor(IDC_CURSOR1);
    GetDlgItem(IDC_BUTTON1)->GetWindowRect(&rect);
    if (rect.PtInRect(point))
    {
    m_hOldCursor = ::SetCursor(m_hCursor);
    }
    else 
    {
    ::SetCursor(m_hOldCursor);
    }

    CDialog::OnMouseMove(nFlags, point);
    }