用SetCursor()更改鼠标光标,有时可以改,有时执行了,但光标没变,请问是什么问题?

解决方案 »

  1.   

    SetCursor()函数的hcorsor句柄的资源最好作成全局的,这样不至于再SetCursor后,
    资源不合法!
      

  2.   

    要是想在控件中还要改变的话,可以用下面的方法实现
    BOOL CYourDlg::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
             HWND hWnd = ::GetFocus();
    int iID = ::GetDlgCtrlID(hWnd);
             (GetDlgItem(IDC_EDIT1))->m_hWnd;
    if(iID == IDC_EDIT1)
    {
                      ::HideCaret(hWnd);
             ::SetCursor(::LoadCursor(NULL,IDC_HELP));  

    }
    return CDialog::PreTranslateMessage(pMsg);
    }
      

  3.   

    鼠标一移动时,鼠标光标形状又得重画,你能保证这种情况了吗?----->要在WM_MOUSEMOVE里或者 WM_SETCURSOR里改它的形状。
      

  4.   

    在对话框WM_SETCURSOR消息的响应函数中用SetCursor函数设置光标就没什么问题的。
    肯定能成!