Vc++:在标签控件中,标签页面是如何添加和创建的

 我来答
faropt
2011-06-27
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
给你段代码参考一下。这段是操作标签控件,以添加标签页。具体点哪个标签显示什么内容,还要在标签的消息响应函数中添加显示/隐藏页面的代码。

OnInitDialog()中进行初始化,代码如下:

CImageList imageList;
CBitmap bitmap;

bitmap.LoadBitmap(IDB_BMP_TABIMG);
imageList.Create(16, 16, ILC_COLOR24|ILC_MASK, 16, 1);
imageList.Add(&bitmap, RGB(255, 0, 255));

// 将控件子类化到控件类变量,就可以象进行类对象操作一样添加标签页
m_tabCtrl.SubclassDlgItem(IDC_TAB_CTRL, this);
m_tabCtrl.SetImageList(&imageList);
TC_ITEM TabCtrlItem;
TabCtrlItem.mask = TCIF_TEXT | TCIF_IMAGE;
TabCtrlItem.iImage = 0;
TabCtrlItem.pszText = "快捷面板";
m_tabCtrl.InsertItem(0, &TabCtrlItem);
m_pageShortcutBoard.Create(IDD_DLG_SHORTCUT, &m_tabCtrl);
CRect rc;
m_tabCtrl.GetClientRect(&rc);
m_pageShortcutBoard.SetWindowPos (NULL, 12, 28,rc.right-16,rc.bottom-40,SWP_SHOWWINDOW);

TabCtrlItem.mask = TCIF_TEXT | TCIF_IMAGE;
TabCtrlItem.iImage = 1;
TabCtrlItem.pszText = "位置记录";
m_tabCtrl.InsertItem(1, &TabCtrlItem);
m_pagePegRecord.Create(IDD_DLG_PEGRECORD, &m_tabCtrl);
m_pagePegRecord.SetWindowPos(NULL, 4, 28, rc.right-7, rc.bottom-32,SWP_HIDEWINDOW );

imageList.Detach();
bitmap.Detach();
// 初始化结束

// 选择标签的响应函数,在这里边决定显示哪个页面
void CPaveShootDlg::OnTcnSelchangeTabCtrl(NMHDR *pNMHDR, LRESULT *pResult)
{
CRect rc;
m_tabCtrl.GetClientRect (&rc);

switch(m_tabCtrl.GetCurSel())
{
case 0:
// 显示这个页面
m_pageShortcutBoard.SetWindowPos (NULL, 12, 28,rc.right-16,rc.bottom -40,SWP_SHOWWINDOW);
// 隐藏这个页面
m_pagePegRecord.SetWindowPos (NULL, 4, 28, rc.right-7, rc.bottom-32,SWP_HIDEWINDOW );
break;
case 1:
// 隐藏这个页面
m_pageShortcutBoard.SetWindowPos (NULL, 12, 28, rc.right-16, rc.bottom-40, SWP_HIDEWINDOW);
// 显示这个页面
m_pagePegRecord.SetWindowPos (NULL, 4, 28, rc.right-7, rc.bottom-32, SWP_SHOWWINDOW );
break;
}

//*pResult = 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式