转的一篇 ctabctrl的代码文章
2010-06-10 19:54
162 查看
1、建立一个基于对话框的应用程序;
2、画CTabCtrl控件,类向导中关联变量名为m_tab,新建三个对话框属性 设为Child,None,用ClassWizard生成新的类,基类为Cdialog,分别为Cpage0,Cpage1,Cpage2,ID号分别为 IDD_DIALOG0,IDD_DIALOG1,IDD_DIALOG2。在主对话框中加入三个变 量,Cpage0 page0;Cpage1 page1;Cpage2 page2。别忘了在主对话框的头文件中要加 入#include "Page0.h",#include "Page1.h",#include "Page2.h"
3、在主对话框的OnInitDialog()内初始化 :
// TODO: Add extra initialization here
//初始化m_tab控件
m_tab.InsertItem(0," 呵呵,茂叶工作室 ");
m_tab.InsertItem(1," 嘻嘻 ");
m_tab.InsertItem(2," 哈哈,www.maoyeah.com ");
//建立属性页各页
page0.Create(IDD_DIALOG0,GetDlgItem(IDC_TAB1));
page1.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB1));
page2.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB1));
//设置页面的位置在m_tab控件范围内
CRect rect;
m_tab.GetClientRect(&rect);
rect.top+=20;
rect.bottom-=4;
rect.left+=4;
rect.right-=4;
page0.MoveWindow(&rect);
page1.MoveWindow(&rect);
page2.MoveWindow(&rect);
page1.ShowWindow(TRUE);
m_tab.SetCurSel(1);
4、m_tab控件属性页选择时显示各页:
void CMy3Dlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int CurSel;
CurSel=m_tab.GetCurSel();
switch(CurSel)
{
case 0:
page0.ShowWindow(TRUE);
page1.ShowWindow(FALSE);
page2.ShowWindow(FALSE);
break;
case 1:
page0.ShowWindow(FALSE);
page1.ShowWindow(TRUE);
page2.ShowWindow(FALSE);
break;
case 2:
page0.ShowWindow(FALSE);
page1.ShowWindow(FALSE);
page2.ShowWindow(TRUE);
break;
default: ;
}
*pResult = 0;
}
2、画CTabCtrl控件,类向导中关联变量名为m_tab,新建三个对话框属性 设为Child,None,用ClassWizard生成新的类,基类为Cdialog,分别为Cpage0,Cpage1,Cpage2,ID号分别为 IDD_DIALOG0,IDD_DIALOG1,IDD_DIALOG2。在主对话框中加入三个变 量,Cpage0 page0;Cpage1 page1;Cpage2 page2。别忘了在主对话框的头文件中要加 入#include "Page0.h",#include "Page1.h",#include "Page2.h"
3、在主对话框的OnInitDialog()内初始化 :
// TODO: Add extra initialization here
//初始化m_tab控件
m_tab.InsertItem(0," 呵呵,茂叶工作室 ");
m_tab.InsertItem(1," 嘻嘻 ");
m_tab.InsertItem(2," 哈哈,www.maoyeah.com ");
//建立属性页各页
page0.Create(IDD_DIALOG0,GetDlgItem(IDC_TAB1));
page1.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB1));
page2.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB1));
//设置页面的位置在m_tab控件范围内
CRect rect;
m_tab.GetClientRect(&rect);
rect.top+=20;
rect.bottom-=4;
rect.left+=4;
rect.right-=4;
page0.MoveWindow(&rect);
page1.MoveWindow(&rect);
page2.MoveWindow(&rect);
page1.ShowWindow(TRUE);
m_tab.SetCurSel(1);
4、m_tab控件属性页选择时显示各页:
void CMy3Dlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int CurSel;
CurSel=m_tab.GetCurSel();
switch(CurSel)
{
case 0:
page0.ShowWindow(TRUE);
page1.ShowWindow(FALSE);
page2.ShowWindow(FALSE);
break;
case 1:
page0.ShowWindow(FALSE);
page1.ShowWindow(TRUE);
page2.ShowWindow(FALSE);
break;
case 2:
page0.ShowWindow(FALSE);
page1.ShowWindow(FALSE);
page2.ShowWindow(TRUE);
break;
default: ;
}
*pResult = 0;
}
相关文章推荐
- 用LaTeX在同一篇文章中展现不类型的代码
- 一篇文章看懂iOS代码块Block
- 一篇文章搞懂柏林噪声算法,附代码讲解
- 转载的一篇关于如何优化JAVA代码及提高效率的文章
- 针对上一篇文章中的代码,想出的重构方案(python实现)
- 关于业务代码维护和团队成长的实践分享,挺有意思的一篇文章
- 一篇文章拿下《Effective Objective C 2 0编写高质量iOS与OS X代码的52个有效方法》
- php 上一篇,下一篇文章实现代码与原理说明
- 如何实现一篇学术文章的代码?
- 「代码家」的学习过程和学习经验分享(挺好的一篇文章,转载侵删)
- U-Boot重定位代码分析 (学习u-boot时网上搜到的一篇文章,感觉挺给力的)
- 我的代码生成工具部分代码2,没办法本来发一篇文章的非要弄2次,非得出现500 Internal Server Error错误
- 【原创+转载】看到比较搞的一篇文章《重构代码的7个阶段》
- 一篇迟到的gulp文章,代码合并压缩,less编译
- 转载的一篇关于如何优化JAVA代码及提高效率的文章
- 修改上一篇文章的node.js代码,支持调用自定义页面
- 初步学delphi线程,找到一篇文章,强烈推荐大家看看,tthread代码分析
- 转载的一篇关于如何优化JAVA代码及提高效率的文章
- 一篇关于如何优化JAVA代码及提高效率的文章
- 一致性哈希算法的一种PHP实现代码(上一篇文章)