常见问题 动态载入资源文件中光标时会闪动得厉害
HCURSOR hCur = ::LoadCursor(AfxGetResourceHandle(),MAKEINTRESOURCE(IDC_CURSOR1));
::SetCursor(hCur);
记得有人说过在加载程序的时候不要加载默认的光标 然后再动态在程序中设置就不会闪了不知道怎么弄?
只要不要让光标闪就行了.

解决方案 »

  1.   

    1.在WM_SETCURSOR消息里改变
    2.SetClassLong(m_hWnd, GCL_HCURSOR, NULL);
    然后在WM_MOUSEMOVE里改变
      

  2.   

    就你说的这样HCURSOR hCur = ::LoadCursor(AfxGetResourceHandle(),MAKEINTRESOURCE(IDC_CURSOR1));
    ::SetCursor(hCur);不灰闪!!你不会是一直调用了上面2句吧??
      

  3.   

    在WM_SETCURSOR消息里改变,不一定在WM_MOUSEMOVE里吧。
    需要换换就行了
      

  4.   

    应该在设置一个BOOL型全局变量x,在鼠标移动到指定区域时,使之为TRUE, 移出时使之为FALSE,然后在WM_SETCURSOR消息映射函数中,判断x为TRUE,则执行光标的改变,为FALSE则不执行,这样就不会出现光标移出指定区域时无法还原默认鼠标啦!
    BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
    {
    if( x)
             {
                ::SetCursor(hCur);
                return TRUE;
             }
             else
     return CDialog::OnSetCursor(pWnd, nHitTest, message);

    }