VC中,使用dlg.DoModal()打开一个窗口,除了使用IDOK或者IDCANCEL可以关闭当前窗口外,如何关闭当前窗口 假如,我在主窗体上做三个按钮,分别打开三个新的窗体,但是我想打开新窗体的时候要关闭当前窗体,不然使用dlg.DoModal()可以重复打开同一个窗体,哪位大哥可以具体点给我说明下吗,谢谢
1 回答
蓝山帝景
TA贡献1843条经验 获得超7个赞
你描述的内容相互矛盾。
如果你的DoModal只在同一个窗口中调用,那么是不可能反复点击打开多个的,这是模态对话框的特征。如果是要求按钮只允许按一次,那么DoModal返回IDOK后Enable函数禁止按钮就可以了。
DoModal存在父子窗口关系,你不可能关闭了父窗口而保留子窗口。因此如果你要“关闭”的是主窗口,那么只能是隐藏,不能使关闭。
无论OnOK还是OnCancel,最终都是通过EndDialog结束的对话框,这个函数在对话框中随时可以调用。而正确使用时,不是只有两个ID的按钮才可以结束对话框,任何自定义按钮中调用基类的CDialog::OnOK();这个语句,都可以结束对话框并将DoModal返回IDOK消息。
- 1 回答
- 0 关注
- 178 浏览
添加回答
举报
0/150
提交
取消