窗口重绘的问题

华美乐章 2012-11-21 12:00:08
当主线程从数据库查找数据时(数据要在窗口显示和绘图),顺便我开启了个UI线程,创建非模态Loading窗口(等待窗口),直到数据处理完关闭等待窗口,退出UI线程。
问题来了,再此期间,主线程的菜单栏为什么变白了(我创建的是单文档应用程序),是因为主线程在处理数据很忙,消息阻塞,没有重绘主界面的问题吗?
怎么解决菜单变白的问题啊?

还是我的设计有问题啊?不应该让主线程来处理数据,开线程来处理的话,许多操作与界面有关,很麻烦啊.求大神指点指点.
怎么解决菜单变白的问题啊?或者提供一个好的设计思路.

...全文
94 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐鹦鹉 2012-11-21
  • 打赏
  • 举报
回复
确实不应该由主线程来进行长时间的操作,应该由子线程来完成。变白就是主线程无暇处理重绘造成的。 如果主线程的某些操作和子线程是否执行完成有关,那你应该在主线程中增加处理逻辑。 比如子线程正在工作时,可以禁用会产生冲突的功能
sumos 2012-11-21
  • 打赏
  • 举报
回复
子线程读数据,读好了给主线程窗口发个消息。

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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