最近在给一个控制机器做软件界面,由于之前只是对C语言有一个入门,一直在用JAVA做开发,突然让我用C++的MFC做界面,一时间无从下手,于是花了两天时间对C++进行了一个快速的入门,然后快速的上手软件界面的设计与实现,在给一个弹出子界面上添加Tab Control控件时,由于子界面默认的不主动提供初始化函数BOOL xxxxx::OnInitDialog(),于是在这里遇到了卡了很久,一直把变量都初始化到了主界面的初始化函数中,然后各种调试不通之时,恍然明白过来不是一个作用域,于是重新子界面的初始化函数,问题解决。这里写一个小的Demo以供以后参考!
首先在创建的MFC应用程序的对话框上添加两个按钮,添加两个子对话框CDlgExec,CDlgShow 。CDlgExec设置为模态弹出,CDlgShow设置为非模态弹出。
双击模态对话框按钮,进入按钮点击处理函数,设置为模态弹出模式。
void CMy01CDialogDlg::OnBnClickedButton1()
{
CDlgExec dlg;
dlg.DoModal();
}
双击非模态对话框按钮,进入按钮点击处理函数,设置为非模态弹出模式。
void CMy01CDialogDlg::OnBnClickedButton1()
{
CDlgShow dlg;
dlg.ShowWindow(SW_SHOWNORMAL);
}
然后再创建两个子对话框,CDia_Child1,CDia_Child2。向CDia_Child1中插入一个Tab Control控件。
再添加两个子对话框,设置窗口属性的Style为Child,Border为None。
这里需要添加两个两个文件CTabSheet.h 和CTabSheet.cpp,这两个文件可以自己找一下。
给Tab Control添加变量 ,变量类型选为CTabSheet。
分别给两个子界面添加两个类。命名为IDD_CHILD1,IDD_CHILD2。
然后就是给子窗口添加初始化函数:
随后给模态窗口弹出类添加成员函数:
在初始化函数中添加一下代码就大功告成。
以下就是实现的成果,点击左侧模态对话框弹出右侧界面,在子界面上了实现标签页:
来自一个刚入门两天C++的小学生,仅供自己加深记忆,希望也能顺便给需要此功能的兄弟们提供点借鉴!