求助,MFC模态对话框一闪而过程序假死

qq_34039378 2016-11-17 10:04:00
程序的功能就是点击按钮弹出模态对话框,现在运行结果就是模态对话框闪一下就被遮到主对话框后面了,主对话框也什么都点不了像假死一样
void CTraction::OnBnClickedBtnCalc()
{
// TODO: Add your control notification handler code here
CCompensationChain dlg;
dlg.DoModal();
}

试过把对象放到类里面定义,还有在OnInitDialog()里面添加::SetWindowPos(this->m_hWnd, HWND_TOPMOST, -1, -1, -1, -1, SWP_NOMOVE | SWP_NOSIZE);函数都没有用,求大神指点~
...全文
558 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
hurryboylqs 2016-11-17
  • 打赏
  • 举报
回复
你这是类似TabCtrl的功能吧,把对话框样式设置成child,用Create创建对话框,不是DoModal
qq_34039378 2016-11-17
  • 打赏
  • 举报
回复
引用 1 楼 xiaohuh421 的回复:
CCompensationChain 在这个对话框类的onInitxxx函数中, 设置这个对话框为顶层窗口试试.

还是一样的,运行就成这个样子了。。
xiaohuh421 2016-11-17
  • 打赏
  • 举报
回复
CCompensationChain 在这个对话框类的onInitxxx函数中, 设置这个对话框为顶层窗口试试.
qq_34039378 2016-11-17
  • 打赏
  • 举报
回复
引用 6 楼 qq_29700255 的回复:
模态对话框我一般都用新的线程创建,因为它会截取消息,直到关闭对话框之后程序才会接着运行. 不是必要的话,new个指针,create非模态对话框
试过了非模态还是不行。。
OnTheWay_Boy 2016-11-17
  • 打赏
  • 举报
回复
模态对话框我一般都用新的线程创建,因为它会截取消息,直到关闭对话框之后程序才会接着运行. 不是必要的话,new个指针,create非模态对话框
xiaohuh421 2016-11-17
  • 打赏
  • 举报
回复
假死, 其实是消息循环被模态对话框接管了. 你的问题是那个模态对话框被主对话框遮挡了, 对吧. 一般来说主模态对话框会在最上层弹出的. CCompensationChain 这个对话框类的资源中窗口类型一定要是dialog 估计是你有些地方弄错了.

15,979

社区成员

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

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