我想在执行一段代码的时候把鼠标光标改成沙漏,执行完再变回来。怎么做?

解决方案 »

  1.   

    SetCursor(...)
    LoadCursor(...)...
      

  2.   

    SetCursor(AfxGetApp()->LoadCursor(IDC_WAIT));//将鼠标设为等待
    SetCursor(AfxGetApp()->LoadCursor(IDC_ARROW));//将鼠标设为箭头
      

  3.   

    在知秋一叶提供的代码前加上::
    比如
    ::SetCursor.....
      

  4.   

    用LoadCursor加载光标资源,获得光标句柄,然后用SetCursor设置光标
      

  5.   

    是这样,如果楼主懂Win32 API编程的话就该知道每个窗口都会有一个窗口类。类的一个成员就是设定这个窗口类的鼠标指针用的是什么的成员。如果在这个成员中有指定值,即使你用SetCursor,也只能一瞬间的改变鼠标的样子,然后系统马上就要把它变回来。解决的方法有两个。
    1.是用SetClassLong函数改变窗口类的这个鼠标成员,改为你想要的就行了。如果想动态的改鼠标,就把那个成员改为NULL,然后想变鼠标时就用SetCursor就行了。
    2.在WM_SETCURSOR消息的处理函数中添加SetCursor。这个消息是不断的被发出的,系统默认的处理就是把鼠标改成在窗口类里设的那个鼠标。你只要把默认的处理删掉,然后用SetCursor就能获得你想要的鼠标了。
      

  6.   

    static HCURSOR hCursorPen;
    hCursorPen = ::LoadCursor(hInst, ID_CURSOR);
    ::SetCursor(hCursorPen);