BeginWaitCurso()不行吗?在后面加上Sleep(2000)应该出现沙漏吧

解决方案 »

  1.   

    在OnInitDialog()中BeginWaitCurso()不行,在后面加上Sleep(2000)没出现沙漏吧 
      

  2.   

    调用BeginWaitCursor函数来启动等待光标,调用EndWaitCursor 函数来结束等待光标。
    要注意,二者都要调用app 的成员函数,如下所示: AfxGetApp()->BeginWaitCursor();
    // 要做的事
    AfxGetApp()->EndWaitCursor();你试验一下,希望有帮助!
      

  3.   

    CWaitCursor,OnCreate里面再Restore
      

  4.   

    CWaitCursor sur;

    Sleep(20);sur.Restore();
      

  5.   

    如果在客户区绘制之前出现waitcursor,只要在OnPaint加就可以了呀
      

  6.   

    如果在OnPaint()增加的话,岂不是每次都会调用
      

  7.   


    CWaitCursor
    or
    BeginWaitCursor
      

  8.   

    直接声明一个CWaitCursor 对像就行了呀
      

  9.   

    HCURSOR hCursor = LoadCursorW(NULL,IDC_WAIT);
    SetCursor(hCursor);
    ShowCursor(TRUE);
      

  10.   

    试一下OnSetCursor(),ClassWizard生成的,在对话框出现时置一标志变量为 TRUE,对话框消失时标志变量置 FALSE
     TRUE 时 SetCursor(::LoadCursor(NULL,IDC_WAIT));
     FALSE 时设置成一般状态就行了
      

  11.   

    Martens(第7人)的说法是对的
      

  12.   

    看了一下 BeginWaitCursor 和 CWaitCursor 的代码
    由于它们都是调用SetCursor设置鼠标的,众所周知,SetCursor仅能在鼠标位于本进程所属窗口内才有效,这时对话框还没有出现,当然没有效果了。
    可能只有这样:先建一个不可见的而且和整个屏幕一样大的窗口(就是它的OnPaint,OnNcPaint什么都不画,背景刷为NULL,没有Border和Title),设置WS_EX_TOPMOST置于最前,然后使用BeginWaitCursor;这样就有效了。