本来别的窗口中用是行的啊SetCursor(AfxGetApp()->LoadCursor(IDC_POINTER));
怎么到了按钮就不行了了

解决方案 »

  1.   

    按钮也是窗口,到了按钮在按钮窗口OnSetCursor,多来一次吧。
      

  2.   

    本来我想也是应该可以的啊。我view的onmousemove()里面用就可以的。。
    我检查了一下,调用 是成功了,就是不显示。不过我眼尖看到了一闪即逝的
      

  3.   

    你是在哪个消息里面处理这个的,在WM_SETCURSOR消息的处理函数OnSetCursor中调用你的方法并且return 1;应该就行了.
      

  4.   

    响应消息WM_SETCURSOR,BOOL CxxDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
    {
    // TODO: Add your message handler code here and/or call default    
    if(GetDlgItem(IDC_BUTTON)->m_hWnd == pWnd->m_hWnd &&  message == WM_LBUTTONDOWN)
    {
     //ADD your func
     return TRUE;
    }
    return CDialogEx::OnSetCursor(pWnd, nHitTest, message);
    }
      

  5.   

    添加一个BOOL m_CursosStyle;
    响应消息WM_SETCURSOR, BOOL CxxDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 

    // TODO: Add your message handler code here and/or call default   
    if(GetDlgItem(IDC_BUTTON)->m_hWnd == pWnd->m_hWnd &&  message == WM_LBUTTONDOWN) 

    //ADD your func 
    m_CursosStyle = TRUE;
    return TRUE; 

     if(m_CursosStyle == TRUE)
      return TRUE;
    return CDialogEx::OnSetCursor(pWnd, nHitTest, message); } 
      

  6.   

    谢谢哦。。这个可以。。但我想的是你的这个加个成员变量没什么用是的。就没加。。直接返回一个TRUE。结果才出现的时候鼠标形状是IDC_WAIT类型的。。非要在初始化函数里设置成IDC_ARROW才行,不知道是为什么呵。。
      

  7.   

    return CDialog::OnSetCursor(pWnd, nHitTest, message);
    对了我不加入那个变量而把这句删除的话也能实现的。。这又是为什么呢。。不知道机制是什么呢。。好姐姐教教我呀
      

  8.   

    return CDialog::OnSetCursor(pWnd, nHitTest, message); 
    这个是用于调用系统默认的,我加了BOOL变量只是以为你会想把鼠标形状改回来