MFC的导航窗格浮窗设计(2003格式)
class COutlookBar : public CMFCOutlookBar
{
protected:
DECLARE_DYNCREATE(COutlookBar)
DECLARE_MESSAGE_MAP()
private:
afx_msg LRESULT OnChangeActiveTab(WPARAM,LPARAM);
virtual BOOL AllowShowOnPaneMenu() const { return TRUE; }
};
COutlookBar bar;///创建一个导航窗口类对象
bar.SetMode2003();//设置为2003的格式
CMFCOutlookBarPane m_wndMonitorPane;//外观工具栏窗格
CMFCOutlookBarPane m_wndDataBasePane;
CMFCOutlookBarPane m_wndSysQueryPane;创建导航窗格的选项卡
CMFCOutlookBarPane m_wndSysConfigPane;
if (!bar.Create(strTemp, this, CRect(0, 0, nInitialWidth, 32000), uiID, WS_CHILD | WS_VISIBLE | CBRS_LEFT))
{
return FALSE; // 未能创建
}
CMFCOutlookBarTabCtrl* pOutlookBar = (CMFCOutlookBarTabCtrl*)bar.GetUnderlyingWindow();//获取bar对象的控件对象
if (pOutlookBar == NULL)
{
ASSERT(FALSE);
return FALSE;
}
static UINT uiPageID = 1;
DWORD dwPaneStyle = AFX_DEFAULT_TOOLBAR_STYLE | CBRS_FLOAT_MULTI;选项卡的格式
// 可浮动,可自动隐藏,可调整大小,但不能关闭
DWORD dwStyle = AFX_CBRS_FLOAT | AFX_CBRS_AUTOHIDE | AFX_CBRS_RESIZE;;选项卡的格式
Monitorpane.Create(&bar, dwPaneStyle, uiPageID++, dwStyle);
Monitorpane.SetOwner(this);
Monitorpane.EnableTextLabels();///这几行为选项卡创建实体
Monitorpane.EnableDocking(CBRS_ALIGN_ANY);/
DataBasepane.Create(&bar, dwPaneStyle, uiPageID++, dwStyle);
DataBasepane.SetOwner(this);
DataBasepane.EnableTextLabels();
DataBasepane.EnableDocking(CBRS_ALIGN_ANY);
SysQuerypane.Create(&bar, dwPaneStyle, uiPageID++, dwStyle);
SysQuerypane.SetOwner(this);
SysQuerypane.EnableTextLabels();
SysQuerypane.EnableDocking(CBRS_ALIGN_ANY);
SysConfigpane.Create(&bar, dwPaneStyle, uiPageID++, dwStyle);
SysConfigpane.SetOwner(this);
SysConfigpane.EnableTextLabels();
SysConfigpane.EnableDocking(CBRS_ALIGN_ANY);
CImageList images;///图片存储表;
CBitmap bmp;//位图
if (!bmp.LoadBitmap(bIsHiColor ? IDB_NAVIGATION_LARGE_HC : IDB_NAVIGATION_LARGE))//加载位图资源
{
return FALSE;
}
BITMAP bm;
bmp.GetBitmap(&bm);
UINT nFlags = ILC_MASK;
if (bIsHiColor)
{
nFlags |= ILC_COLOR24;
}
else
{
nFlags |= ILC_COLOR;
}
images.Create(32, bm.bmHeight, nFlags, 0, 0);///为image创建空间
images.Add(&bmp, RGB(255, 0, 255));、、、、、、、、添加位图资源
为一个选项卡添加类容按钮
选项卡.AddButton(images.ExtractIcon(iIconIndex), strName, uiCmd)
图片 caption 控件ID
(只写了一个)
//
最后:
pOutlookBar->AddControl(&bar, strTemp, 0, TRUE, dwStyle);
把选项卡添加到bar中