如何在长任务之前更改光标?

时间:2012-05-02 02:32:25

标签: winapi mfc

我想在长任务之前更改光标。我用setcursor改变了它,但是光标没有改变。

这是我的代码:

    HCURSOR hWait  =  AfxGetApp()->LoadStandardCursor(IDC_WAIT) ;
    HCURSOR hDefault = AfxGetApp()->LoadStandardCursor(IDC_ARROW);
    ::SetCursor(hWait);

    //a long procedure

    ::SetCursor(hDefault);

我做错了什么?

1 个答案:

答案 0 :(得分:2)

一种非常方便的方法是在长任务的开始(或之前)创建CWaitCursor的实例。它设置光标,当它超出范围时,它将恢复它(在析构函数中):

{
    CWaitCursor wait;  

    // Long task

} // The cursor is restored here