在用MFC编写界面时,想写一个页面切换界面,之前用的是tab控件,觉得效果不太满意,后面查到其他资料,用的是groupbox来放置窗口,效果不错,代码和结果如图所示:
在主界面中放置一个IDC_GROUP、IDC_BUTTON 4个
在界面中插入两个Dialog,,建立类,并设置对话框的属性,Border为None,Style 为child;
在主界面的.h文件中引入两个类
CDialogOne* OneDlg;
CDialogTwo* TwoDlg;
在OnInitDialog()函数中添加:
GetDlgItem(IDC_GROUP)->ShowWindow(SW_HIDE);
OneDlg=new CDialogOne();
OneDlg->Create(IDD_DIALOG_ONE,GetDlgItem(IDC_GROUP));
OneDlg->ShowWindow(SW_HIDE);
TwoDlg=new CDialogTwo();
TwoDlg->Create(IDD_DIALOG_TWO,GetDlgItem(IDC_GROUP));
TwoDlg->ShowWindow(SW_HIDE);
}
//点击按钮把主页面原来的控件隐藏掉
void CMFCDlg::OnBnClickedButtonOne()
{
// TODO: 在此添加控件通知处理程序代码
GetDlgItem(IDC_BUTTON3)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_BUTTON4)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_GROUP)->ShowWindow(SW_SHOW);
OneDlg->ShowWindow(SW_SHOW);
TwoDlg->ShowWindow(SW_HIDE);
}
void CMFCDlg::OnBnClickedButtonTwo()
{
// TODO: 在此添加控件通知处理程序代码
GetDlgItem(IDC_GROUP)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BUTTON3)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_BUTTON4)->ShowWindow(SW_HIDE);
OneDlg->ShowWindow(SW_HIDE);
TwoDlg->ShowWindow(SW_SHOW);
}
代码完成,运行结果如图所示:
主界面:
点击第一页按钮:
点击第二页按钮
程序中的源代码已上传至:http://download.csdn.net/detail/zhulichen/9626651