OutlookTabCtrl-另一种标签

此控件是另一种选项卡。选项卡显示为水平条纹,可以折叠为位于单独区域中的按钮。每个选项卡都分配有自己的窗口,单击该选项卡时将显示该窗口。可以在按钮区域中显示一个附加按钮。例如,您可以使用它显示菜单。

该控件派生自CWndMFC,并且是基于MFC的通用控件。可以将其放在任何窗口上:主框架,对话框等。

使用代码

要创建控件并向其中添加元素,可以执行以下步骤:

#include "OutlookTabCtrl.h"OutlookTabCtrlEx<OutlookTabCtrlCustom1> m_TabCtrl;
CListCtrl m_List1, m_List2;

...if( !m_TabCtrl.Create(this, WS_CHILD | WS_VISIBLE,CRect(10,10,100,200), ID_OutlookTabCtrl) ) return -1; // error.// Create an ImageList with icons for tabs displayed as stripes.m_TabCtrl.CreateStripeImage(NULL,IDB_STRIPE_NORMAL,IDB_STRIPE_DISABLE,true,24);// Create an ImageList with icons for tabs displayed as buttons.m_TabCtrl.CreateButtonImage(NULL,IDB_BUTTON_NORMAL,IDB_BUTTON_DISABLE,true,16);// Create child controls.if( !m_List1.Create(WS_CLIPCHILDREN | LVS_REPORT, CRect(0,0,0,0), &m_TabCtrl,ID_List1) ||
 !m_List2.Create(WS_CLIPCHILDREN | LVS_REPORT, CRect(0,0,0,0), &m_TabCtrl,ID_List2) ) return -1; // error.m_List1.InsertColumn(0,"Mail",LVCFMT_LEFT,100);
m_List2.InsertColumn(0,"Calendar",LVCFMT_LEFT,100);// Add child items in the m_TabCtrl.if( !m_TabCtrl.AddItem(&m_List1,"Mail",0,0) ||
 !m_TabCtrl.AddItem(&m_List2,"Calendar",1,1) ) return -1; // error.// Load state from registry.if( !m_TabCtrl.LoadState(AfxGetApp(),"OutlookTabCtrl","State") )
 m_TabCtrl.PushVisibleItem(); // create default state.m_TabCtrl.Update();1234567891011121314151617181920212223242526272829303132复制代码类型:[cpp]

本OutlookTabCtrl类不绘制自身。为此,请从OutlookTabCtrl::Draw类继承并实现其功能。OutlookTabCtrl::Draw必须通过调用SetDrawManager函数将指向的指针传递给控件。该班OutlookTabCtrlCustom1......OutlookTabCtrlCustom4都是现成的实现OutlookTabCtrl::Draw类。它们每个都OutlookTabCtrl以自己的样式进行渲染。本OutlookTabCtrlEx类可以帮助你结合OutlookTabCtrl与呈现类。例如,如下所示:OutlookTabCtrlEx<OutlookTabCtrlCustom2>ctrl;。

该OutlookTabCtrl::IRecalc界面设置控件中区域的大小。该OutlookTabCtrl等级都有其自身OutlookTabCtrl::IRecalc的实现。但是,您也可以自己实现OutlookTabCtrl::IRecalc接口,并使用该SetRecalcManager函数在控件中传递指向该接口的指针。

还有三个附加类:Ability,Notify,和ToolTip。本Ability类允许用户选择任何选项卡。Notify通知某些事件的发生。ToolTip管理按钮状态下的选项卡的工具提示的创建。指向每个类的实现的指针也必须传递给OutlookTabCtrl。

用于所有新添加项目的Windows应具有唯一的标识符。项目可以处于条纹或按钮状态。默认情况下,将项目添加为条纹。用户应该调用Update函数来显示由功能设定的结果DeleteItem,SetItemWindow,SelectItem等您可以隐藏的项目(ShowItem)或阻止它(DisableItem)。也有可能获得所有可见项目(GetVisibleIndexByHandle)中或一般情况下控件中所有项目()中项目的索引GetIndexByHandle。控件可以从注册表或其他源(LoadState/SaveState)中保存和加载其元素的位置及其可见性。这只是可能性的一部分。要了解更多信息,请看一看该类的public界面OutlookTabCtrl。

(0)

相关推荐