线程中弹出一个模态对话框,结果使得整个UI卡住,动不了,该怎样处理?

Cherishe7 2014-03-31 10:51:30
在线程中发消息给mainfram,弹出了一个模态对话框,结果AP的整个UI阻塞动不了,连模态对话框也没法点,好像是失去了焦点,然后切换到其他应用,在切换回来时就好了,请问这是怎么回事,该怎样解决。
...全文
299 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
昨夜无风 2014-04-01
  • 打赏
  • 举报
回复
同意5楼的!
zgl7903 2014-04-01
  • 打赏
  • 举报
回复
用PostMessage
dancing_night 2014-04-01
  • 打赏
  • 举报
回复
为什么要这么搞,用非模态不好么
schlafenhamster 2014-03-31
  • 打赏
  • 举报
回复
"CWnd::OnCancelMode 系统调用该函数通知窗口取消其内部的某些状态。 某窗口拥有焦点时,在弹出dialog对话框或message box之前此函数将被框架调用,这将给予窗口取消其内部某些状态的机会(比如释放捕获的鼠标等)。 默认实现就是调用ReleaseCapture来释放可能被捕获的鼠标,如果需要,派生类要重写此函数来处理其他的内部状态。"
Cherishe7 2014-03-31
  • 打赏
  • 举报
回复
引用 1 楼 zhoujielunzhimi 的回复:
在弹出模态对话框之前,ReleaseCapture();
这个难道不是模态对话框阻塞UI线程吗?
sumos 2014-03-31
  • 打赏
  • 举报
回复
在弹出模态对话框之前,ReleaseCapture();
华美乐章 2014-03-31
  • 打赏
  • 举报
回复
引用 5 楼 worldy 的回复:
死锁了 模态对话框是一个独立的线程,当模态对话的时候,调用者线程进入挂起状态,模态对话框发消息给非模态,Sendmessage函数需要进行线程切换,但是此时它处于挂起状态,所以Sendmessage一直无法返回
+1,有着可能。
worldy 2014-03-31
  • 打赏
  • 举报
回复
死锁了 模态对话框是一个独立的线程,当模态对话的时候,调用者线程进入挂起状态,模态对话框发消息给非模态,Sendmessage函数需要进行线程切换,但是此时它处于挂起状态,所以Sendmessage一直无法返回
asdjy123 2014-03-31
  • 打赏
  • 举报
回复
可以考虑使用非模态对话框
 本课程总体分为七大部分:一: UI框架设计理念       整体简单介绍即将带领大家开发的UI框架的功能设计、核心类设计等,让大家有一个整体、大概的了解。二: 简单版本开发      为了简化框架学习的难度,先带领大家开发一个类似Hello World 的简单版本,以期达到学员快速理解、与减轻学习框架核心思想难度的目的。三: 窗体层级管理       层级管理是UI框架的重点与难点,本章节使用了大量时间,对核心开发理念、与具体实现编码,进行详细的讲解。四: 窗体管理     游戏项目中对于重要信息,经常会现“弹窗口”。对于此类UI界面,我们设计了多种()窗体的属性,以**限度灵活的适用于不同游戏项目(包括VR/AR)的开发需求五: 日志调试与配置管理    游戏项目开发经常会遇到PC端运行良好,发布移端(IOS/Android/平板等)现崩溃、死机、数值与预期不同的调试难题。本章节从高级日志的开发讲解到基于Json 的配置管理的应用。使得学员学会对于经常需要改变数值(或者改变需求),使用基于“低耦合”思想,配合“配置管理”的思想来应对灵活多变的需求开发。六: 消息传递中心      Unity游戏项目中存在多种数值(消息)的传递方式,但是大多数的消息传递方式,耦合性太高造成项目块的“复用性”降低。本章节讲解采用“消息中心”的思想,开发类似“发邮件”、“收邮件”的机制,来彻底杜绝脚本之间(游戏对象、UI窗体之间)强耦合现象。七: 资源国际化技术     目前国内大多数中大型游戏(VR/AR)公司,都要进行全球发布与营销,如何解决游戏项目中资源的国际化问题,对于开发人员尤其重要。通过本章节学习,结合笔者经验给基于Json 可配置原理的解决方案。      温馨提示: 进一步详细了解本课程大纲学员,请务必围观课程的第1节“总体介绍”,谢谢大家! 课程温馨提示:      说明1:  本课程《UI界面框架设计》开发环境如下:               Win8.1(Win10)+Unity5.5.1版本+VS2012+UnityVS(支持5.x的版本)插件+Resharp8.0插件。 一、热更新系列(技术含量:中高级):A:《lua热更新技术中级篇》https://edu.csdn.net/course/detail/27087B:《热更新框架设计之Xlua基础视频课程》https://edu.csdn.net/course/detail/27110C:《热更新框架设计之热更流程与热补丁技术》https://edu.csdn.net/course/detail/27118D:《热更新框架设计之客户端热更框架(上)》https://edu.csdn.net/course/detail/27132E:《热更新框架设计之客户端热更框架(中)》https://edu.csdn.net/course/detail/27135F:《热更新框架设计之客户端热更框架(下)》https://edu.csdn.net/course/detail/27136二:框架设计系列(技术含量:中级): A:《游戏UI界面框架设计系列视频课程》https://edu.csdn.net/course/detail/27142B:《Unity客户端框架设计PureMVC篇视频课程(上)》https://edu.csdn.net/course/detail/27172C:《Unity客户端框架设计PureMVC篇视频课程(下)》https://edu.csdn.net/course/detail/27173D:《AssetBundle框架设计_框架篇视频课程》https://edu.csdn.net/course/detail/27169三、Unity脚本从入门到精通(技术含量:初级)A:《C# For Unity系列之入门篇》https://edu.csdn.net/course/detail/4560B:《C# For Unity系列之基础篇》https://edu.csdn.net/course/detail/4595C: 《C# For Unity系列之中级篇》https://edu.csdn.net/course/detail/24422D:《C# For Unity系列之进阶篇》https://edu.csdn.net/course/detail/24465四、虚拟现实(VR)与增强现实(AR):(技术含量:初级)A:《虚拟现实之汽车仿真拟系统 》https://edu.csdn.net/course/detail/26618五、Unity基础课程系列(技术含量:初级) A:《台球游戏与FlappyBirds—Unity快速入门系列视频课程(第1部)》 https://edu.csdn.net/course/detail/24643B:《太空射击与移端发布技术-Unity快速入门系列视频课程(第2部)》https://edu.csdn.net/course/detail/24645 C:《Unity ECS(二) 小试牛刀》https://edu.csdn.net/course/detail/27096六、Unity ARPG课程(技术含量:初中级):A:《MMOARPG地下守护神_单机版实战视频课程(上部)》https://edu.csdn.net/course/detail/24965B:《MMOARPG地下守护神_单机版实战视频课程(中部)》https://edu.csdn.net/course/detail/24968C:《MMOARPG地下守护神_单机版实战视频课程(下部)》https://edu.csdn.net/course/detail/24979 

15,979

社区成员

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

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