CTabCtrl 选项卡

1、

构造

CTabCtrl 构造一个CTabCtrl对象
Create 创建一个标签控件并将它与一个CTabCtrl对象连接

属性

GetImageList 获取与一个标签控件相关的图像列表
SetImageList 将一个图像列表分配给一个标签控件
GetItemCount 获取此标签控件中的标签的数目
GetItem 获取此标签控件中的某一个标签的信息
SetItemExtra 设置一个标签控件中的每一个标签为应用程序定义的数据所保留的字节数
GetItemRect 获取一个标签控件中的一个标签的边界矩形
GetCurSel 确定在一个标签控件中当前选择的标签
SetCurSel 在一个标签控件中选择一个标签
SetCurFocus 将焦点设置到一个标签控件中的指定标签上
SetItemSize 设置某个项的宽度和高度
SetPadding 设置一个标签控件中的每一个标签的图标和标签周围的空间(填料)
GetRowCount 获取一个标签控件中的标签的当前行数
GetToolTips 获取与一个标签控件相关联的工具提示控件的句柄
SetToolTips 将一个工具提示控件赋给一个标签控件
GetCurFocus 获取一个标签控件的具有当前焦点的标签
SetMinTabWidth 设置一个标签控件中的项的最小宽度
GetExtendedStyle 获取标签控件当前使用的扩展风格
SetExTendedStyle 设置一个标签控件的扩展风格
GetItemState 获取指定标签控件项的状态
SetItemState 设置指定标签控件项的状态

操作

InsertItem 在一个标签控件中插入一个新的标签
DeleteItem 从一个标签控件中删除一项
DeleteAllItems 从一个标签控件中删除所有的项
AdjustRect 根据一个给定的窗口矩形来估算一个标签控件的的显示区域,或根据一个给定的显示区域来估算与之对应的窗口矩形
RemoveImage 从一个标签控件的图像列表中删除一个图像
HitTest 确定哪一个标签(如果有的话)位于指定的屏幕位置
DeselectAll 重新设置一个标签控件中的项,清除任何被按下的项
HighlightItem 设置一个标签项的加亮状态

可重载函数

DrawItem 绘制一个标签控件的指定项

2、常用示例

2.1 添加一个对话框程序,在主界面中添加一个TabCtrl控件,并添加一个变量m_TabCtrl

2.2 添加三个空对话框,ID分别为IDD_DiALOG1,IDD_DiALOG2,IDD_DiALOG3,并关联三个对话框的类,类名分别为CLCDlg1,CLCDlg2,CLCDlg3

分别删除对话框中的确定和取消按钮并加上不同的静态文字

2.3 在主对话框的头文件中添加三个对话框变量,并加上头文件。

CLCDlg1 m_dlg1; CLCDlg2 m_dlg2; CLCDlg3 m_dlg3;

#include "LCDlg1.h"
#include "LCDlg2.h"
#include "LCDlg3.h"

2.4 重写主对话框的OnInitDialog函数。

CSize size;
size.cx=10;size.cy=10;
m_TabCtrl.SetPadding(size);//设置选项卡之间间隔

m_TabCtrl.InsertItem(0,_T("文件/文件夹"));//插入一个新的标签
m_TabCtrl.InsertItem(1,_T("快捷方式"));
m_TabCtrl.InsertItem(2,_T("快捷安装"));
m_TabCtrl.HighlightItem(0,TRUE);//设置一个标签项的加亮状态
m_TabCtrl.HighlightItem(1,TRUE);
m_TabCtrl.HighlightItem(2,TRUE);
CRect rect; rect.left=50;rect.right=500;rect.top=20;rect.bottom=50;
m_TabCtrl.AdjustRect(TRUE,rect);//根据一个给定的窗口矩形来估算这个标签控件的显示区域

m_dlg1.Create(IDD_DIALOG1,GetDlgItem(IDD_DIALOG1));
m_dlg2.Create(IDD_DIALOG2,GetDlgItem(IDD_DIALOG2));
m_dlg3.Create(IDD_DIALOG3,GetDlgItem(IDD_DIALOG3));

m_TabCtrl.GetClientRect(&rect);
rect.top+=100; 
//rect.bottom-=4; 
rect.left+=100; 
rect.right-=8; 
m_dlg1.MoveWindow(&rect);
m_dlg2.MoveWindow(&rect);
m_dlg3.MoveWindow(&rect);

m_dlg1.ShowWindow(TRUE);
m_TabCtrl.SetCurSel(1);//选择当前标签索引为1

2.5 为TabCtrl控件添加OnSelect()消息

void CLocalSpeedyPPage::OnSelchangeLcTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: 在此添加控件通知处理程序代码
	int curSel= m_TabCtrl.GetCurSel();//当前选择的标签
	switch(curSel)
	{
	     case 0:
			 m_dlg1.ShowWindow(TRUE);
			 m_dlg2.ShowWindow(FALSE);
			 m_dlg3.ShowWindow(FALSE);
			 break;
		 case 1:
			 m_dlg1.ShowWindow(FALSE);
			 m_dlg2.ShowWindow(TRUE);
			 m_dlg3.ShowWindow(FALSE);
			 break;
		 case 2:
			 m_dlg1.ShowWindow(FALSE);
			 m_dlg2.ShowWindow(FALSE);
			 m_dlg3.ShowWindow(TRUE);
			 break;
	}
	*pResult = 0;
}

你可能感兴趣的:(#,MFC常用控件,mfc)