当用户确定查询的时候,弹出一个窗口,告诉用户忙,同时当鼠标进入这个等待窗口,鼠标变成沙漏状,当鼠标离开这个等待的窗口,鼠标形状又变成箭头状请指教

解决方案 »

  1.   

    为对话框类添加一个成员变量
    HCURSOR hcur;
    在oninitdialog中:
    hcur=AfxGetApp()->LoadCursor(IDC_CURSOR1);
    SetClassLong(m_hWnd,GCL_HCURSOR,(long)hcur);
      

  2.   

    如果只要等待光标
    CWaitCursor WaitCursor ;
    就可以了
      

  3.   

    当鼠标进入这个等待窗口,鼠标变成沙漏状,当鼠标离开这个等待的窗口,鼠标形状又变成箭头状
    ____________________
    创建一个窗口, 这个窗口的默认光标为沙漏形.然后显示之,
    WINDOWS会自动处理光标的切换.
      

  4.   

    感谢各位的指教,本人先创建了一个Dialog资源,然后在该Dialog的oninitdialog中:
    hcur=AfxGetApp()->LoadCursor(IDC_CURSOR1);
    SetClassLong(m_hWnd,GCL_HCURSOR,(long)hcur);然后在需要显示的地方
    m_dlgWait.Create(IDD_DIALOG_WAIT,NULL);问题是窗口出现了,但是沙漏光标不出现
    请问是什么原因啊
      

  5.   

    ShowWindow(..)    //显示
    DestroyWindow(..) //销毁
      

  6.   

    hcur=AfxGetApp()->LoadCursor(IDC_CURSOR1);
    改为
    hcur=AfxGetApp()->LoadStandardCursor(IDC_WAIT);
      

  7.   

    当然你的
    IDC_CURSOR1
    设为漏斗的也可以
      

  8.   

    hcur=AfxGetApp()->LoadStandardCursor(IDC_WAIT);
      

  9.   

    我的IDC_CURSOR1就是设成漏斗状的,问题是我原本想在弹出的这个窗口中显示漏斗光标,而在其他地方恢复箭头光标.不知道问什么,就是不出现漏斗光标.我的EMAIL:
    [email protected]
      

  10.   

    HCURSOR hcur;在PreCreateWindow中加载光标
    hcur=AfxGetApp()->LoadCursor(IDC_CURSOR1);在oninitdialog中:
    SetClassLong(m_hWnd,GCL_HCURSOR,(long)hcur);
      

  11.   

    在对话框中拦鼠标移动消息。
    HCURSOR HCursor=::LoadCursor(AfxGetResourceHandle("IDC_CURSOR");
    ::SetCursor(hCursor);
      

  12.   

    我在需要动态显示的等待窗口中得WM_MOUSEMOVE消息处理函数中加入了:
    HCURSOR HCursor=::LoadCursor(AfxGetResourceHandle("IDC_CURSOR");
    ::SetCursor(hCursor);
    但是好像还是不行啊。
    帮人帮到底吧,各位!
      

  13.   

    小小的光标问题有那么怪?BOOL CYourDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
    {
    HCURSOR hCursor=AfxGetApp()->LoadStandardCursor(IDC_WAIT);
    SetCursor(hCursor);
    return TRUE;
    // return CDialog::OnSetCursor(pWnd, nHitTest, message);
    }
      

  14.   

    把你WM_MOUSEMOVE消息处理函数中的光标设置去掉后如果上面的代码不行,请发短消息给我。
      

  15.   

    为了让大家更好的理解小弟的问题,帮帮我。我把这个帖子整理一下。
    问题:
    当用户确定查询的时候,弹出一个窗口,告诉用户忙,同时当鼠标进入这个等待窗口,鼠标变成沙漏状,当鼠标离开这个等待的窗口,鼠标形状又变成箭头状?
    答案1:使用线程
    答案2:创建一个窗口, 这个窗口的默认光标为沙漏形.然后显示之,具体的语句为为对话框类添加一个成员变量
    HCURSOR hcur;
    在oninitdialog中:
    hcur=AfxGetApp()->LoadCursor(IDC_CURSOR1);
    SetClassLong(m_hWnd,GCL_HCURSOR,(long)hcur);
    小弟测试了一下答案2的方法,小弟首先添加了一个Dialog资源(IDD_DIALOG_WAIT),在这个Dialog的h文件中添加了HCURSOR hcur;然后在这个Dialog的oninitdialog中添加了
    hcur=AfxGetApp()->LoadCursor(IDC_CURSOR_WAIT);
    SetClassLong(m_hWnd,GCL_HCURSOR,(long)hcur);
    最后在需要显示这个Dialog的Dialog的头文件中为刚才添加的Dialog生成了一个对象m_dlgWait,然后在程序中用这样的语句来显示,
    m_dlgWait.Create(IDD_DIALOG_WAIT,NULL);
    仍然没有搞定(shy),问题是窗口出现了,但是不见等待光标.小弟发现,当用m_dlgWait.DestroyWindow()将这个等待窗口销毁后,等待光标在调用等待窗口的窗口的非客户区出现了,这是怎么回事?
    另外如果用zswzwy(←圣骑士!帕迪拉斯!) 老兄提到的捕捉鼠标移动消息的方法,小弟也许没有理解好如何捕捉,小弟在需要动态显示的等待窗口中得WM_MOUSEMOVE消息处理函数中加入了:
    HCURSOR HCursor=::LoadCursor(AfxGetResourceHandle("IDC_CURSOR");
    ::SetCursor(hCursor);,问题还是有,动态显示的这个窗口捕捉不到WM_MOUSEMOVE消息。
    希望这个菜菜的问题,能够得到大家的帮助,也让我好好学习一下。
      

  16.   

    可以直接在查詢那個函數里加
    CWinApp *pW = AfxGetApp();
    HCURSOR oldCursor = SetCursor(pW->LoadStandardCursor(IDC_WAIT));
     
    這個代碼就可以啊