如何动态显示一个等待窗口,告诉用户正在忙, 当用户确定查询的时候,弹出一个窗口,告诉用户忙,同时当鼠标进入这个等待窗口,鼠标变成沙漏状,当鼠标离开这个等待的窗口,鼠标形状又变成箭头状请指教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 为对话框类添加一个成员变量HCURSOR hcur;在oninitdialog中:hcur=AfxGetApp()->LoadCursor(IDC_CURSOR1);SetClassLong(m_hWnd,GCL_HCURSOR,(long)hcur); 如果只要等待光标CWaitCursor WaitCursor ;就可以了 当鼠标进入这个等待窗口,鼠标变成沙漏状,当鼠标离开这个等待的窗口,鼠标形状又变成箭头状____________________创建一个窗口, 这个窗口的默认光标为沙漏形.然后显示之,WINDOWS会自动处理光标的切换. 感谢各位的指教,本人先创建了一个Dialog资源,然后在该Dialog的oninitdialog中:hcur=AfxGetApp()->LoadCursor(IDC_CURSOR1);SetClassLong(m_hWnd,GCL_HCURSOR,(long)hcur);然后在需要显示的地方m_dlgWait.Create(IDD_DIALOG_WAIT,NULL);问题是窗口出现了,但是沙漏光标不出现请问是什么原因啊 ShowWindow(..) //显示DestroyWindow(..) //销毁 hcur=AfxGetApp()->LoadCursor(IDC_CURSOR1);改为hcur=AfxGetApp()->LoadStandardCursor(IDC_WAIT); 当然你的IDC_CURSOR1设为漏斗的也可以 hcur=AfxGetApp()->LoadStandardCursor(IDC_WAIT); 我的IDC_CURSOR1就是设成漏斗状的,问题是我原本想在弹出的这个窗口中显示漏斗光标,而在其他地方恢复箭头光标.不知道问什么,就是不出现漏斗光标.我的EMAIL:[email protected] HCURSOR hcur;在PreCreateWindow中加载光标hcur=AfxGetApp()->LoadCursor(IDC_CURSOR1);在oninitdialog中:SetClassLong(m_hWnd,GCL_HCURSOR,(long)hcur); 在对话框中拦鼠标移动消息。HCURSOR HCursor=::LoadCursor(AfxGetResourceHandle("IDC_CURSOR");::SetCursor(hCursor); 我在需要动态显示的等待窗口中得WM_MOUSEMOVE消息处理函数中加入了:HCURSOR HCursor=::LoadCursor(AfxGetResourceHandle("IDC_CURSOR");::SetCursor(hCursor);但是好像还是不行啊。帮人帮到底吧,各位! 小小的光标问题有那么怪?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);} 把你WM_MOUSEMOVE消息处理函数中的光标设置去掉后如果上面的代码不行,请发短消息给我。 为了让大家更好的理解小弟的问题,帮帮我。我把这个帖子整理一下。问题:当用户确定查询的时候,弹出一个窗口,告诉用户忙,同时当鼠标进入这个等待窗口,鼠标变成沙漏状,当鼠标离开这个等待的窗口,鼠标形状又变成箭头状?答案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消息。希望这个菜菜的问题,能够得到大家的帮助,也让我好好学习一下。 可以直接在查詢那個函數里加 CWinApp *pW = AfxGetApp(); HCURSOR oldCursor = SetCursor(pW->LoadStandardCursor(IDC_WAIT)); 這個代碼就可以啊 CListCtrl 获取单元格内容后,关闭对话框后,数据显示有点卡 能不能知道一张照片是什么时候照的 请教CAD中的两个基本问题:旋转与拉伸 error C2065: '_lpw' : undeclared identifier 线程过程中如何修改类成员变量?急! 智力测试题 如何在ListCtrl中显示文件的图标啊? 如何在系统在登录前显示服务界面(屏幕键盘) CreateCompatibleBitmap失败 怎么区分Backspace键和Delete键 高手请进,来者有分 关于磁盘的问题。
HCURSOR hcur;
在oninitdialog中:
hcur=AfxGetApp()->LoadCursor(IDC_CURSOR1);
SetClassLong(m_hWnd,GCL_HCURSOR,(long)hcur);
CWaitCursor WaitCursor ;
就可以了
____________________
创建一个窗口, 这个窗口的默认光标为沙漏形.然后显示之,
WINDOWS会自动处理光标的切换.
hcur=AfxGetApp()->LoadCursor(IDC_CURSOR1);
SetClassLong(m_hWnd,GCL_HCURSOR,(long)hcur);然后在需要显示的地方
m_dlgWait.Create(IDD_DIALOG_WAIT,NULL);问题是窗口出现了,但是沙漏光标不出现
请问是什么原因啊
DestroyWindow(..) //销毁
改为
hcur=AfxGetApp()->LoadStandardCursor(IDC_WAIT);
IDC_CURSOR1
设为漏斗的也可以
[email protected]
hcur=AfxGetApp()->LoadCursor(IDC_CURSOR1);在oninitdialog中:
SetClassLong(m_hWnd,GCL_HCURSOR,(long)hcur);
HCURSOR HCursor=::LoadCursor(AfxGetResourceHandle("IDC_CURSOR");
::SetCursor(hCursor);
HCURSOR HCursor=::LoadCursor(AfxGetResourceHandle("IDC_CURSOR");
::SetCursor(hCursor);
但是好像还是不行啊。
帮人帮到底吧,各位!
{
HCURSOR hCursor=AfxGetApp()->LoadStandardCursor(IDC_WAIT);
SetCursor(hCursor);
return TRUE;
// return CDialog::OnSetCursor(pWnd, nHitTest, message);
}
问题:
当用户确定查询的时候,弹出一个窗口,告诉用户忙,同时当鼠标进入这个等待窗口,鼠标变成沙漏状,当鼠标离开这个等待的窗口,鼠标形状又变成箭头状?
答案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消息。
希望这个菜菜的问题,能够得到大家的帮助,也让我好好学习一下。
CWinApp *pW = AfxGetApp();
HCURSOR oldCursor = SetCursor(pW->LoadStandardCursor(IDC_WAIT));
這個代碼就可以啊