但是改变不了,程序如下:
void CBlueChatDlg::OnDataReceived (void *p_data, UINT16 len)
{
    _beginthread(ThreadDll,0,NULL);
}
void ThreadDll(PVOID pvoid)
{
LoadCustom();
}void LoadCustom()
{
HCURSOR hcursor=LoadCursor(hInst,MAKEINTRESOURCE(IDC_CROSS));
SetCursor(hcursor);}

解决方案 »

  1.   

    不是,就是响应了OnDataReceived (..)之后改变
      

  2.   

    不是,没那么复杂,只是在程序运行时,鼠标在所有的窗口中改变cursor
      

  3.   

    如果是拖动操作(鼠标左键按下),SetCapture后就能在进程所属的窗口外改变Cursor。如果不是,SetCapture也不起作用,以前有过讨论,最后的结论是先创建一个透明的toplevel窗体(背景刷子为NULL,不处理WM_PAINT)覆盖整个屏幕。
      

  4.   

    可以看看这个API,SetSystemCursor();
      

  5.   

    SetClassLong( .., GCL_HCURSOR, ... );可以改变整个系统中某种窗口类型的鼠标形状,例如可以将系统中所有EDIT窗口的鼠标都改为‘十字’形状。
      

  6.   

    你加两个按钮,执行以下的代码试试。
    点Button1改变Cursor,点Button2变回去。
    --------------------------void CTestCursor2Dlg::OnButton1() 
    {
    HCURSOR hCur;

    hCur = ::GetCursor();
    m_CursorOld = CopyCursor(hCur);

    hCur = ::LoadCursor(NULL, IDC_CROSS);
    HCURSOR hNew = CopyCursor(hCur);

    ::SetSystemCursor(hNew, 32512);
    }void CTestCursor2Dlg::OnButton2()
    {
    HCURSOR hNew = CopyCursor(m_CursorOld);

    ::SetSystemCursor(hNew, 32512);
    }
      

  7.   

    SetCursor(hcursor); 只是简单地改变应用程序自己的光标形状SetSystemCursor(...) 可以替换掉系统的某种光标