Tab CtrTab属性页控件可以在一个窗口中添加不同的页面,然后在页选择发生改变时得到通知。MFC中使用CTabCtrl类来封装属性页控件的各种操作。通过调用
BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些属性页控件的专用风格:
TCS_BUTTONS 使用按钮来表示页选择位置
TCS_MULTILINE 分行显示页选择位置
TCS_SINGLELINE 只使用一行显示页选择位置
在控件创建后必需向其中添加页面才可以使用,添加页面的函数为:
BOOL InsertItem( int nItem, LPCTSTR lpszItem );nItem为位置,从零开始,lpszItem为页选择位置上显示的文字。如果你希望在页选择位置处显示一个图标,你可以调用
BOOL InsertItem( int nItem, LPCTSTR lpszItem, int nImage );nImage指明所使用的图片位置。(在此之前必须调用CImageList * SetImageList( CImageList * pImageList );设置正确的ImageList)
此外CTabCtrl还提供了一些函数用于得到/修改控件的状态。
int GetCurSel( )/int SetCurSel( int nItem );用于得到/设置当前被选中的页位置。
BOOL DeleteItem( int nItem )/BOOL DeleteAllItems( );用于删除指定/所有页面。
void RemoveImage( int nImage );用于删除某页选择位置上的图标。
属性页控件的消息映射同样使用ON_NOTIFY宏,形式如同:ON_NOTIFY( wNotifyCode, id, memberFxn ),wNotifyCode为通知代码,id为产生该消息的窗口ID,memberFxn为处理函数,函数的原型如同void OnXXXTab(NMHDR* pNMHDR, LRESULT* pResult),其中pNMHDR为一数据结构,在具体使用时需要转换成其他类型的结构。对于列表控件可能取值和对应的数据结构为:
TCN_SELCHANGE 在当前页改变后发送,所用结构:NMHDR
TCN_SELCHANGING 在当前页改变时发送可以通过返回TRUE来禁止页面的改变,所用结构:NMHDR
一般来讲在当前页发生改变时需要隐藏当前的一些子窗口,并显示其它的子窗口。下面的伪代码演示了如何使用属性页控件:
CParentWnd::OnCreate(...)
{
m_tab.Create(...);
m_tab.InsertItem(0,"Option 1");
m_tab.InsertItem(1,"Option 2");
Create a edit box as the m_tab's Child
Create a static box as the m_tab's Child
edit_box.ShowWindow(SW_SHOW); // edit box在属性页的第一页
static_box.ShowWindow(SW_HIDE); // static box在属性页的第二页
}
void CParentWnd::OnSelectChangeTab(NMHDR* pNMHDR, LRESULT* pResult)
{//处理页选择改变后的消息
if(m_tab.GetCurSel()==0)
{//根据当前页显示/隐藏不同的子窗口
edit_box.ShowWindow(SW_SHOW);
static_box.ShowWindow(SW_HIDE);
}
else
{//
edit_box.ShowWindow(SW_HIDE);
static_box.ShowWindow(SW_SHOW);
}
}
分享到:
相关推荐
MFC tabctrl控件重载, 实现标签加载BMP图片, 美化标签. 花了很多积分,现在免费给好学者参考,不容易啊!
MFC tabctrl控件重载, 实现标签加载BMP图片, 美化标签. 找了N久终于找到了, 不容易啊!
MFC TabCtrl控件Demo
MFC的TabCtrl控件,是我们在项目中常用的,它可以实现界面切换的效果,作为小白,在学习的过程中记录自己的点滴过程,对自己也是一种成长。
在非多文档应用程序中使用标签页(MFCTabCtrl),并解决了MFCTabCtrl控件关闭按钮的BUG
MFC tabctrl控件重载, 实现标签加载BMP图片, 美化标签. 找了N久终于找到了, 不容易啊!
这是一个关于mfc对话框控件中属性选型卡tabctrl控件用法的程序,为mfc对话框控件初学者提供了一个较好的学习控件用法的学习资料。
Tab 控件自动Add ,Delete TabCtrl
MFC XP风格控件应用,MFC XP 控件
例子中基于MFC单文档视图,实现了点击TreeCtrl的不同子ITEM动态生成TabCtrl控件相应TAB页功能,如果一些TAB页已经生成,点击相应的TreeCtrl子ITEM则切换到已生成的TAB页上,支持TAB页右键菜单关闭,左键双击关闭功能...
MFC重绘控件,主要包括MFCGridCtrl,FlatScrollBar,XPMenu,Toolbar,TabCtrl ,color Button,SplitterCtrl,ResizableDialog等
MFC重绘控件,主要包括MFCGridCtrl,FlatScrollBar,XPMenu,Toolbar,TabCtrl ,color Button,SplitterCtrl,ResizableDialog等
Tab控件的使用方法及禁用某一页的方法的源代码
最简单的表格控件MFC小程序,实现文件夹下文件信息的表格化
TabCtrl 介绍 选项卡可以位于子窗口的顶部或底部。 用户可以使用鼠标拖动选项卡。 控件具有缩放(选项卡缩小)和滚动选项卡模式。 同样,如果有一个选项卡,则可以隐藏选项卡区域。 Control具有27种内置的选项卡...
关于MFC控件的实例,是你学习美化界面的最佳选择。
第2篇 关键控件篇(MFC) 第8章 常用界面控件 8.1 静态文本(staticText)控件 8.1.1 传统控件通知消息 8.1.2 静态控件的使用 8.1.3 CStatic类的主要成员函数 8.2 文本编辑(EditBox)控件 8.2.1 文本编辑控件的使用 ...