以带2个属性页的对话框为例 (VS2008)
1. 在资源试图 添加三个 对话框。修改三个对话框的ID名字为合适的名字。
2. 修改两个属性页对话框的属性。 Style -- Child; Border -- None 。
3. 给三个对话框添加三个类。 都是CDialog的子类。 右击点击资源--》 添加类 即可。
4. 给基础对话框(我们这里表示用来包含属性页的哪个对话框)添加一个Tab Control 控件, 并且给Tab Control 添加控件变量m_tab
5. 在对话框的头文件中添加
CGeneralSettingPage general_setting_page_;
CEffectSettingPage effect_setting_page_;
5. 重写对话框的InitDialog() 函数。 添加
// TODO: 在此添加额外的初始化 m_tab.InsertItem(0, _T("通用设置"), 0); m_tab.InsertItem(1, _T("运行设置"), 0); general_setting_page_.Create(IDD_OLE_PAGE_GENERAL_SETTING, &m_tab); effect_setting_page_.Create(IDD_OLE_PAGE_EFFECT_SETTING, &m_tab); CRect rect; m_tab.GetClientRect(rect); rect.DeflateRect(2, 30, 2 ,2); general_setting_page_.MoveWindow(rect); effect_setting_page_.MoveWindow(rect); general_setting_page_.ShowWindow(SW_SHOW);
6. 双击基础对话框里的Tab Control 控件, 生成afx_msg void OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult); 函数
7. 在函数里添加代码
void CSystemSetting::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult) { // TODO: 在此添加控件通知处理程序代码 if (m_tab.GetCurSel() == 0) { general_setting_page_.ShowWindow(SW_SHOW); effect_setting_page_.ShowWindow(SW_HIDE); } else if (m_tab.GetCurSel() == 1) { general_setting_page_.ShowWindow(SW_HIDE); effect_setting_page_.ShowWindow(SW_SHOW); } *pResult = 0; }
编译 --》 运行 完成