以下是个人总结,如有错误之处,还望各位大佬见谅,希望各位指出我的不足之处。
一,如何从父窗口跳转到子窗口且隐藏主窗口
创建如下对话框(dialog)
按钮在那个窗口,就在那个窗口添加类,
在新创建的类的头文件(.h 文件)引用目标窗口的的头文件(.h 文件)。并生成一个指针。
//我这里目标头文件如下
#include"DlgParticulars.h"
private:
CDlgParticulars *m_wndPartPage;
并为Button添加一个点击事件(或者直接双击按钮即可生成),在里面添加如下代码,即可跳转到目标窗口,且隐藏主窗口
void CDlgCommSetting::OnBnClickedbuttonOpen()
{
// TODO: 在此添加控件通知处理程序代码
//跳转窗口 并显示
m_wndPartPage = new CDlgParticulars;
m_wndPartPage->Create(IDD_DIALOG_FUNCTION,this);
m_wndPartPage->ShowWindow(SW_SHOW);
//隐藏主窗口
GetParent()->ShowWindow(SW_HIDE);
}
二、子窗口关闭且整个程序结束,并提示用户是否退出。
其他步骤如上,关闭整个程序需添加一个消息,在类向导里面添加WM_CLOSE
在添加的消息处理程序里面添加如下代码即可实现,在子窗口关闭是结束整个程序。并提示用户是否退出。
void CDlgParticulars::OnClose()
{
int mClose = MessageBox(_T("确定要退出程序吗?"), _T("退出提醒"), MB_YESNO);
if (mClose==IDYES)
{
CDialogEx::OnClose();
//退出程序
GetParent()->DestroyWindow();
}
else
{
return ;
}
// TODO: 在此添加消息处理程序代码和/或调用默认值
}
效果如下单击后提示用户是否退出程序yes(退出程序)no(退出当前对话框并保留程序):