DoModal() 和 EndDialog()

whouse 2004-06-22 02:28:15

我在vc++中调用一个CLASS的DoModal()显示该CLASS的图框, 判断条件后关闭图框。
但是关闭失败。即该图框始终存在。
不知是为什么?
请各位执教,谢谢

// Process is a class with DialogBox
Process Processing
Processing.DoModal();
if( GetRespond)
Processing.EndDialog(1);
...全文
807 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
forswear 2004-06-22
  • 打赏
  • 举报
回复
happyparrot(快乐鹦鹉)说得对,你最好用非模式的,因为如果让DoModel返回,必须在对话框里面给它消息,否则对话框只能一直呆在那里,直到取消或确定才能走到下一句
快乐鹦鹉 2004-06-22
  • 打赏
  • 举报
回复
那你最好不要用模式对话框。用非模式对话框比较好。
CMyDialog dlg;
dlg.Create(IDD_MYDIALOG);
dlg.ShowWindow(SW_SHOW);
这样可以显示对话框,然后在你需要的时候可以EndDialog
whouse 2004-06-22
  • 打赏
  • 举报
回复
谢谢你的答复,我没有把问题说清楚。
我是要通过串口对磁卡读写器操作,所以需要一个弹出信息窗提示用户可以刷卡。用户刷卡后自动消失。
我的做法是编辑一个Dialog, 条件满足后调用DoModal()显示提示窗,判断到刷卡完成后调用EndDialog()取消。如果不能调用EndDialog()取消提示窗, 我该用什么函数取消提示窗?
谢谢
Zark 2004-06-22
  • 打赏
  • 举报
回复
DoModal()是用来显示并调用Dialog的,当DoModal()返回的时候,那个对话框就已经销毁了,所以不能在if块中调用EndDialog();

这个EndDialog()应该是在OK或Cancel按钮的响应函数中调用.

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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