MFC_2.5 选项卡控件的使用

Posted ltyandy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC_2.5 选项卡控件的使用相关的知识,希望对你有一定的参考价值。

选项卡控件的使用

1.新建默认MFC文件。

2.资源-添加Dialog-添加类。(假设生成3个,Dialog1Dialog2Dialog3)

3.类向导,添加类,点小三角形,添加MFC类。添加CTabCtrl类

4.CTabCtrl 里面添加新的函数

// 添加选项卡的[选项名]
VOID CMyTabCtrl::InsertTabColumn()
{
InsertItem(0, L"主菜单");
InsertItem(1, L"强力杀毒");
InsertItem(2, L"文件查找");
}
?
// 添加对话框
VOID CMyTabCtrl::InsertTabDialog()
{
// 1. 生成对话框
DialogArr[0] = new CMyDialog1;
DialogArr[1] = new CMyDialog2;
DialogArr[2] = new CMyDialog3;
?
// 2. 通过 id 创建窗口
DialogArr[0]->Create(IDD_DIALOG1);
DialogArr[1]->Create(IDD_DIALOG2);
DialogArr[2]->Create(IDD_DIALOG3);
?
// 3. 将窗口移动到指定的位置
CRect Rect;
GetClientRect(&Rect);
Rect.DeflateRect(17, 44, -9, -12);
DialogArr[0]->MoveWindow(&Rect);
DialogArr[1]->MoveWindow(&Rect);
DialogArr[2]->MoveWindow(&Rect);
?
// 3. 显示窗口
ShowTabDialog(1);
}
?
// 显示指定的对话框
VOID CMyTabCtrl::ShowTabDialog(int index)
{
for (int i = 0; i < 3; ++i)
{
if (i == index)
DialogArr[i]->ShowWindow(SW_NORMAL);
else
DialogArr[i]->ShowWindow(SW_HIDE);
}
}
?
?
BEGIN_MESSAGE_MAP(CMyTabCtrl, CTabCtrl)
ON_NOTIFY_REFLECT(TCN_SELCHANGE, &CMyTabCtrl::OnTcnSelchange)
END_MESSAGE_MAP()
?
?
?
// CMyTabCtrl 消息处理程序
?
?
?
// 消息反射处理对话框选项卡的切换
void CMyTabCtrl::OnTcnSelchange(NMHDR* pNMHDR, LRESULT* pResult)
{
// 获取点击了第几个
int index = GetCurSel();
?
// 显示指定的
ShowTabDialog(index);
?
*pResult = 0;
}

6.默认生成的Dialog绑定变量,类型为CMyTabCtrl

7.初始化默认生成的

// 向选项卡中添加数据
m_TabCtrl.InsertTabColumn();
?
// 添加对话框
m_TabCtrl.InsertTabDialog();
?

 

以上是关于MFC_2.5 选项卡控件的使用的主要内容,如果未能解决你的问题,请参考以下文章

Qt 选项卡小部件中的 MFC 控件

重新制作 MFC 对话框以使用选项卡控件

使 MFC CTabCtrl 不使用绘图选项卡的完整控件宽度

如何从 MFC 选项卡控件 (TabCtrl) 获取额外数据?

如何从MFC选项卡控件(TabCtrl)获取额外数据?

选项卡控件中的嵌入式对话框不能在第二个对话框中工作,MFC