VC中的Tab控件使用

简介:

VC中的Tab控件调用与VB、C++buider有点不一样。在VB或C++builder中,添加标签的时候,同时创建了页面窗口。在VC中,添加页标签时,要自己创建无边框窗口,嵌入到Tab控件中。步骤如下:

1、在主窗口上,放上Tab控件,并创建关联变量m_tab

2、在资源中,创建两个无边框窗口,创建相应的窗体类Dlg_page1,Dlg_Page2,这两个类分别继承于CDialogEx或CDialog类。

      窗口属性为:Border:None,Style:Child

3、在主窗口中包含dlgpage1.h、dlgpage2.h头件,添加成员变量:

      DlgPage1  m_page1;

      DlgPage2  m_page2;

4、在主窗的启动函数中添加代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
BOOL  DlgThird::OnInitDialog()  
{  
     CDialogEx::OnInitDialog();  
   
     m_tab1.InsertItem(0,_T( "设置" ));  
     m_tab1.InsertItem(1,_T( "权限" ));  
   
     m_page1.Create(IDD_PAGE1,&m_tab1);  
     m_page2.Create(IDD_PAGE2,&m_tab1);  
   
     CRect rs;  
     m_tab1.GetClientRect(&rs);  
     //调整子对话框在父窗口中的位置  
     rs.top += 25;  
     rs.bottom -= 4;  
     rs.left  += 1;  
     rs.right -= 4;  
     //设置子对话框尺寸并移动到指 定位置  
     m_page1.MoveWindow(&rs);  
     m_page2.MoveWindow(&rs);  
       
     m_page1.ShowWindow(SW_SHOW);  
     m_page2.ShowWindow(SW_HIDE);  
       
   
     m_tab1.SetCurSel(0);  
   
     return  TRUE;    
}  
//Tab控件响应鼠标选择消息代码  
void  DlgThird::OnTcnSelchangeTab(NMHDR *pNMHDR,  LRESULT  *pResult)  
{  
     int  CurSel = m_tab1.GetCurSel();  
         CRect rc;  
     m_tab1.GetClientRect(&rc);  
     switch (CurSel)  
     {  
         case  0:  
             m_page1.ShowWindow( true );  
             m_page2.ShowWindow( false );  
   
             break ;  
         case  1:  
             m_page1.ShowWindow( false );  
             m_page2.ShowWindow( true );  
               
             break ;  
         default :  
             ;  
             *pResult = 0;  
     }  
}

'''













本文转自Chinayu201451CTO博客,原文链接:http://blog.51cto.com/9233403/1968321  ,如需转载请自行联系原作者

相关文章
|
5月前
MFC基本控件4-列表框控件List Box
今天和大家分享一下列表框控件的几个使用方法, 有些基本操作比如实例化对象,继承类的创建相信大家都已经灰了, 不会的可以看第一二篇文章。
|
4月前
[Qt5&控件] 选项卡tabWidget控件隐藏&增加tab个数
[Qt5&控件] 选项卡tabWidget控件隐藏&增加tab个数
54 0
|
算法 容器
Qt 设计界面中 tab widget模块的添加和删除(手动拖拽)
Qt 设计界面中 tab widget模块的添加和删除(手动拖拽)
Qt 设计界面中 tab widget模块的添加和删除(手动拖拽)
|
C++
C/C++ Qt Tree与Tab组件实现分页菜单
虽然`TreeWidget`组件可以实现多节点的增删改查,但多节点操作显然很麻烦,在一般的应用场景中基本上只使用一层结构即可解决大部分开发问题,`TreeWidget`组件通常可配合`TabWidget`组件,实现一个类似于树形菜单栏的功能,当用户点击菜单栏中的选项时则会跳转到不同的页面上。
289 0
C/C++ Qt Tree与Tab组件实现分页菜单
|
IDE 开发工具 容器
vc2010下使用64位控件
最近把我的控件(ST_Curve www.st-curve.cn)升级到了64位,2010编译,本来以为很简单的问题,结果折腾了两天(也有可能我多年没做过界面和vc相关的东西了吧),于是把我遇到的问题罗列一下,希望对需要的人有所帮助(验证的不是很充分,不保证百分之百正确)一:如果一个很老的工程(比如vc6),最好不要直接用vc2010的ide转换工程,而是在vc2010下新建一个工程,再把代码拷贝过来。
1051 0
|
C++
VC/MFC 使edit控件不能进行粘贴操作
[cpp] view plaincopy   这里使用消息拦截的方法   [cpp] view plaincopy   BOOL PersonDlg::PreTranslateMessage(MSG* pMsg)   {       if (Get...
988 0