使用标签控件设计多页面窗口
1:使用 CTabCtrl类的InsertItem(int nitem,LPCTRSTR lpszitem,int nimage)方法
nitem表示索引位置,第一个个为0
lpszitem表示标签页文本
nimage表示标签页显示的图像索引
2 :调用CTabCtrl的SetCurSel(int item)方法设置一个标签页为当前的标签页
item表示设置当前的标签页索引,返回值是控件之前选中的标签页索引
示例:
1:在初始化函数中,其中m_first与m_second是两个对话框类的对象
m_tab.InsertItem(0,"第一个",0);
m_tab.InsertItem(1,"第二个",1);
m_first.Create(IDD_DIALOG4,&m_tab);
m_second.Create(IDD_DIALOG5,&m_tab);//创建窗口
CRect client;
m_tab.GetClientRect(client);
client.DeflateRect(2,30,2,2);//减少客户区域大小
m_first.MoveWindow(client);//移动子窗口
m_second.MoveWindow(client);
m_first.ShowWindow(SW_SHOW);
m_tab.SetCurSel(0);//设置默认选中的标签页
2:处理标签控件的TCN_SELCHANGE消息
void CTabcontrolDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{
int n=m_tab.GetCurSel();//获取当前的索引
if(n==0) //如果第一个标签页被选中
{
m_first.ShowWindow(SW_SHOW); //显示对话框
m_second.ShowWindow(SW_HIDE);//关闭对话框
}
else
{
m_second.ShowWindow(SW_SHOW);//关闭对话框
m_first.ShowWindow(SW_HIDE); //显示对话框
}
*pResult = 0;
}
本文介绍如何使用MFC中的CTabCtrl类实现多页面窗口的设计。通过InsertItem方法添加标签页,并设置文本和图像索引;使用SetCurSel方法指定当前激活的标签页;最后通过处理TCN_SELCHANGE消息来切换不同的对话框窗口。
903

被折叠的 条评论
为什么被折叠?



