MFC中弹出对话框,父窗口消失不见的实现
2013-10-06 11:46
246 查看
MFC中弹出对话框,父窗口消失不见的实现
..
在某一次做一个图书管理系统的时候,在“注册”、“用户登陆”、“管理员登陆”之间的转换令我头疼了半天,其实就是想要实现的功能大致上是,比如在“用户登陆”窗口点击了“注册”,然后就跳转到了“注册窗口”,而且原来的窗口消失不见了,类似的实现三个窗口之间的转换。
说到窗口的消失不见,其实实现的方式有两种思路:
(1)窗口关闭
(2)窗口隐藏
对于第(1)种,我们通常使用以下函数就可以将一个窗口结束了、关闭了:
CDialogEx::OnOK();
CDialogEx::OnCancel();
对于第(2)种,我们需要调用函数使之隐藏:
GetParent()->ShowWindow(SW_HIDE); //得到当前窗口的父窗口(这个时候我们在当前显示的窗口的处理函数中,所以要得到当前窗口的父窗口的指针,然后HIDE)
大体的思路是这样的,但是具体的实现,还是要在程序中认真的斟酌,而且关系窗口退出的返回值问题也向大家简单说一下(对于初学者,包括我自己^_^):
一个对话框窗口的显示要调用Domodal()函数,返回值为一个ID,MSDN Library中的介绍如下:
An int value that specifies the value of the nResult parameter that was passed to the CDialog::EndDialog member function,
which is used to close the dialog box. The return value is –1 if the function could not create the dialog box, or IDABORT if some other error occurred, in which case the Output window will contain error information from GetLastError.
简单的说,返回值为触发窗口关闭的ID,如ID_OK、ID_CANCEL等控件ID,或者是窗口右上角的关闭按钮(ID_CANCEL),根据这个ID,我们可以进行相应的处理,比如:
INT_PTR nRes = userloadDlg.Domodal();
if(ID_OK == nRes)
{
MessageBox(_T(“通过ID_OK关闭窗口”));
}
……
希望对MFC对话框窗口的学习有帮助。
相关文章推荐
- MFC基于对话框上插入MENU菜单栏并点击菜单弹出新窗口
- MFC基于对话框程序启动时隐藏窗口的实现
- 基于对话框的MFC项目实现窗口分割
- MFC对话框控件和背景图片自适应窗口最大化和拉伸缩放的实现
- MFC让对话框窗口始终在最前&MFC弹出非模态对话框
- MFC对话框控件和背景图片自适应窗口最大化和拉伸缩放的实现
- (MFC)关于点击窗口1的button弹出对话框2,关闭对话框2,需要点击两次对话框1的button才能弹出对话框2的问题
- 用JS实现关闭当前窗口不弹出对话框
- MFC中提示对话框的滑动弹出和程序图标加入系统托盘的实现
- MFC实现菜单弹出对话框,并在对话框中实现控件触发
- JS实现制作弹出小窗口并获取参数值2(js弹出对话框集合)
- 用javascript实现选择下拉菜单间的数据转移,用javascript实现超强的万年历,javascript弹出窗口后,关闭窗口时不弹出对话框
- [转]MFC让对话框窗口始终在最前&MFC弹出非模态对话框
- MFC 关闭所有弹出模态对话框,并创建新的对话框(切换/跳转窗口)
- MFC 无边框对话框实现点击任务栏图标 还原窗口的功能
- 使用Jquery仿模态对话框插件Remodal实现弹出响应窗口
- MFC让对话框窗口始终在最前&MFC弹出非模态对话框&居中
- MFC对话框简单实现窗口全透明的方法
- MFC中提示对话框的滑动弹出和程序图标加入系统托盘的实现
- MFC中实现单击按钮弹出对话框的方法