刷新 等待漏斗问题 请教

abo77281 2010-05-20 10:14:04
我用wtl建立一个win32工程,在主框中点击button,弹出子框。
点击button后会进行数据处理,时间较慢,所以想用个等待漏斗提示。

我把 SetCursor(LoadCursor(NULL,IDC_WAIT)和Setcursor(NULL)放在了 CChild dlg; dlg.DoModal();前后

代码如下:

SetCursor(LoadCursor(NULL,IDC_WAIT));
CChild dlg;
dlg.DoModal();
Setcursor(NULL);

现在点击button,漏斗不会出现,要点击下屏才能出现,而且不会自动刷新。3


我把这两句code加在CChild类的onpaint前后,效果跟上述一样。


不知道这个有什么问题,有知道的同仁请指教。

谢谢!

...全文
111 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
koolxiaoyuer 2010-05-20
  • 打赏
  • 举报
回复
期待牛人,我也想知道。
abo77281 2010-05-20
  • 打赏
  • 举报
回复
的确是因为1楼所说,messagepump 没有发出来。
看来要换个方法了。

DontKissBossAss 2010-05-20
  • 打赏
  • 举报
回复
两种方法可以解决,自己可以试验下
1:windows api selectobject()
2: HCURSOR m_Cursor = loadCursor(NULL,IDC_WAIT);
if(!SetCursor(m_Cursor))
......
Sleep(10000);//这个代码可以,但是不能解释为什么,建议用方法一
n70joey 2010-05-20
  • 打赏
  • 举报
回复
学习一下
暗黑帝国 2010-05-20
  • 打赏
  • 举报
回复
漏斗被dlg挡掉了,这样用法恐怕不行。
如果是setcursor以后,没有GUI那就可以
比如
setcursor()
//to do something
setcursor()
abo77281 2010-05-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hao507 的回复:]
SetCursor(LoadCursor(NULL,IDC_WAIT))
要有 messagepump 幫忙才可以動,
因為你调用SetCursor(LoadCursor(NULL,IDC_WAIT));后你一定在处理数据,Window 沒空來處理你圖部份
[/Quote]

我启用定时器定时刷新屏幕也不管用,看来系统的确是太忙了。
九个太阳2023 2010-05-20
  • 打赏
  • 举报
回复
SetCursor(LoadCursor(NULL,IDC_WAIT))
要有 messagepump 幫忙才可以動,
因為你调用SetCursor(LoadCursor(NULL,IDC_WAIT));后你一定在处理数据,Window 沒空來處理你圖部份
abo77281 2010-05-20
  • 打赏
  • 举报
回复
结贴!
abo77281 2010-05-20
  • 打赏
  • 举报
回复
我的最终解决办法是:自己写了个CMessageWait,想怎搞就怎么搞,哈哈。

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧