在对话框中加入属性页 作者:黄晨量 下载本文全部源代码 当一个基于对话框的程序中有相当多的控件时,你一定会想到使用属性页来将这些控件分类放置
本文针对这种方法来讨论几种可能实现的方案
方案一 本方案的例子请见源代码打包文件中的Property1 部分 在对话框上放置一个Tab Control 的控件,再在对话框上放置所需的控件(本例放置了 2 个按钮,试图在每个标签中显示一个)
然后利用Class Wizard 来为Tab Control 控件创建一个控件变量,该变量是 CTabCtrl 类的,再为其他控件也创建相应的控件类
在主对话框的初始函数中CProperty1Dlg::OnInitDialog()加入如下代码: //本例插入两个标签,实际运用中可通过循环插入所需个数的标签,运行后默认第一个标签被选中 m_tab
InsertItem( 0, _T("Tab1") ); m_tab
InsertItem( 1, _T("Tab2") ); //将不是第一个标签的控件隐藏掉,只留下你要的控件 m_button2
ShowWindow( SW_HIDE ); 再利用ClassWizard 处理 Tab Control 的 TCN_SELCHANGE 的消息
在消息处理函数中,利用CWnd::ShowWindow 来使相应的控件显示和隐藏
void CProperty1Dlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult) { //GetCurSel返回当前被选中的标签的索引号(以 0为基础算起) int sel = m_tab
GetCurSel(); switch(sel) { case 0: m_button1
ShowWindow( SW_SHOW ); m_button2
ShowWindow( SW_HI