本站启用国内永久域名: www.LewenSky.cn,请大家使用新域名访问网站!
9月10

VC++ Tab Control控件的使用

| |
网上介绍使用Tab Control控件,好像说的都不是很详细, 我一小菜这边随便说说, 见笑.

1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish.


2. 删除对话框上默认添加的三个控件. 添加Tab Control控件并在Property属性中设置ID为IDC_TABTEST 在More Styles里勾上Bottom. 调速尺寸使其布满整个对话框, 我这边Tab Control的尺寸最后为164X203. 在ClassWizard为其添加变量, 变量名为m_tab. 类型为CTabCtrl.


3. 在对话框的初始化函数OnInitDialog里面添加如下代码:

m_tab.InsertItem(0,"参数一");  //添加参数一选项卡

m_tab.InsertItem(1,"参数二");  //添加参数二选项卡

m_tab.InsertItem(2,"结果");    //添加结果选项卡


4.在对话框资源里面添加三个对话框资源, ID分别命名为IDD_PARA1, IDD_PARA2, IDD_RESULT. 字体为宋体, 字号为9, style为Child, Border为None, 宽度调整为161. 再分别为其添加对应的基于CDialog类CPara1, CPara2, CResult.


5. 在CMyTabDlg类中添加三个成员变量m_para1, m_para2, m_result, 分别是三个子对话框的实例. 代码如下:


CResult m_result;

CPara2 m_para2;

CPara1 m_para1;



6. 在IDD_PARA1对话框上添加静态文本控件内容为"参数一" 再在后面插入一个文本框控件, 用ClassWizard将其关联为一个int型变量,名为m_nPara1;
在IDD_PARA2对话框上添加静态文本控件内容为"参数二" 再在后面插入一个文本框控件, 用ClassWizard将其关联为一个int型变量,名为m_nPara2;
在IDD_RESULT对话框上添加静态文本控件内容为"结果" 再在后面插入一个文本框控件, 用ClassWizard将其关联为一个int型变量,名为m_nResult;

7. 为CPara1类添加成员函数int GetParaValue() 代码如下:


int CPara1::GetParaValue()


{

    return m_nPara1;

}
为CPara2类添加成员函数int GetParaValue() 代码如下:

int CPara2::GetParaValue()


{

    return m_nPara2;

}
为CResult类添加成员函数void SetResultValue(int nResult) 代码如下:

void CResult::SetResultValue(int nResult)


{

     m_nResult = nResult;

}



8. 在IDD_MYTAB_DIALOG对话框的初始化函数OnInitDialog里面添加如下代码:


//关联对话框,并且将IDC_TABTEST控件设为父窗口

m_para1.Create(IDD_PARA1,GetDlgItem(IDC_TABTEST));

m_para2.Create(IDD_PARA2,GetDlgItem(IDC_TABTEST));

m_result.Create(IDD_RESULT,GetDlgItem(IDC_TABTEST));
    

//获得IDC_TABTEST客户区大小

CRect rs;

m_tab.GetClientRect(&rs);

//调整子对话框在父窗口中的位置

rs.top+=1;

rs.bottom-=60;

rs.left+=1;

rs.right-=2;
  

//设置子对话框尺寸并移动到指定位置

m_para1.MoveWindow(&rs);

m_para2.MoveWindow(&rs);

m_result.MoveWindow(&rs);


//分别设置隐藏和显示

m_para1.ShowWindow(true);

m_para2.ShowWindow(false);

m_result.ShowWindow(false);
  

//设置默认的选项卡

m_tab.SetCurSel(0);

9. 添加Tab Control控件的TCN_SELCHANGE事件响应函数OnSelchangeTabtest(NMHDR* pNMHDR, LRESULT* pResult) ,函数体代码如下:


int CurSel = m_tab.GetCurSel();

    switch(CurSel)
    {

    case 0:

         m_para1.ShowWindow(true);

         m_para2.ShowWindow(false);

         m_result.ShowWindow(false);

        break;

    case 1:

         m_para1.ShowWindow(false);

         m_para2.ShowWindow(true);

         m_result.ShowWindow(false);

        break;

    case 2:

         m_para1.ShowWindow(false);

         m_para2.ShowWindow(false);

         m_result.ShowWindow(true);

        break;

    default:

         ;
     }    
  
    *pResult = 0;


10. 在IDD_MYTAB_DIALOG对话框下面添加一个按钮, 标题为"计算" 为其添加事件响应函数, 代码如下:

     m_para1.UpdateData(true);

     m_para2.UpdateData(true);

     m_result.SetResultValue(m_para1.GetParaValue()+m_para2.GetParaValue());

     m_result.UpdateData(false);  
  

11. 最后演示结果如下:
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
点击在新窗口中浏览此图片
12. 这个小程序很简单,但是他说明了Tab Control控件的基本用法.

出处:dawei_sun的专栏
转载时必须以链接形式注明出处及本声明!


最新日志 随机日志 综合排行
  • OFFICE 2010 VOL...
  • 格式工厂绿色版 V2.90
  • Password Invent...
  • VideoCacheView ...
  • 电脑店U盘启动盘制作工具 3....
  • 阿里旺旺AliIM2011_7...
  • 极点五笔十周年纪念版
  • PPTV网络电视3.1.1.0...
  • WinRAR注册方法
  • 紫光华宇拼音输入法 6.8.0...
  • Windows 2003 Se...
  • 实用万年历V6.01单文件绿色...
  • WinRAR 4.00 Fin...
  • 良好的java编程习惯
  • 暴风影音2011 V3.11....
  • Microsoft Offic...
  • QQ2010 SP3 1.56...
  • 网络报刊浏览收藏家V2.0绿色...
  • 暴风影音 3.10.12.01...
  • IEHistoryView v...
  • 安装软件时出现系统提示&quo...
  • XP与XP无线共享设置(笔记本...
  • ZineMaker目录模板大集...
  • 没有不可能 轻松实现PDG转P...
  • CString转char的方法...
  • [转]MSDN精简版、MSDN...
  • 将IE、FIREFOR (火狐...
  • VC多线程编程(转)
  • MyEclipse6.5下载地...
  • Diskeeper 2010 ...
  • 阅读(3165) | 评论(0) | 引用(0)
    发表评论
    表情
    emotemotemotemotemot
    emotemotemotemotemot
    emotemotemotemotemot
    emotemotemotemotemot
    emotemotemotemotemot
    打开HTML
    打开UBB
    打开表情
    隐藏
    记住我
    昵称   密码   游客无需密码
    网址   电邮   [注册]