Tab Control是VC自带的控件,它其实只是实现了标签切换,所以需要自己控制下面控件的显示和隐藏,不是很方便,所以还是尽量用属性页。一些常用的操作如下:
BOOL CTabCtrDlg::OnInitDialog()
...{
...
// TODO: Add extra initialization here
m_tab.InsertItem(0,"tab1");
m_tab.InsertItem(1,"tab2");
m_test2.ShowWindow(SW_HIDE);
return TRUE; // return TRUE unless you set the focus to a control
}
BOOL InsertItem( int nItem, LPCTSTR lpszItem );
nItem--Zero-based index of the new tab. 第一个参数在创建时没多大关系,正整数都行,不要求连贯,这个参数在CTabCtrl的其他函数会用到。也就是说,你创建时可以任意指定,但以后要用CTabCtrl其他接口函数修改,必须用你创建时设的那个数,所以还是有点规律比较好。
通常,你需要响应TCN_SELCHANGE消息,控制每个页控件的显示和消失
void CTabCtrDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult) 
...{
// TODO: Add your control notification handler code here
int sel = m_tab.GetCurSel();
switch(sel)
...{
case 0:
m_test1.ShowWindow(SW_SHOW);
m_test2.ShowWindow(SW_HIDE);
break;
case 1:
m_test2.ShowWindow(SW_SHOW);
m_test1.ShowWindow(SW_HIDE);
break;
default:
break;
}
*pResult = 0;
}
int GetCurSel( ) const;
Return Value
Zero-based index of the selected tab if successful or – 1 if no tab is selected.
上面就是 Tab Control 控件一些常规用法,虽然没有属性页方便,但是微软做的越少,我们可以掌握的也就越多,这控件肯定具有更好的可扩展性.
本文介绍了VC中TabCtrl控件的基本操作,包括InsertItem函数的使用,以及如何响应TCN_SELCHANGE消息来控制各页控件的显示。虽然不如属性页方便,但TabCtrl控件具有更高的可扩展性,允许开发者自定义更多的功能。

716

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



