制作停靠栏

轻松实现类MSDN2002界面(二) 作者:Cuick   前段时间在VC知识库发表了《轻松实现类MSDN2002界面》,仅仅实现了标签页的拖放、停靠、浮动等功能,而上面的图钉按钮也只是一个假的^_^。通过参考http://www.codeproject.com/docking/pinnabledock.asp的代码对程序进行了加强。现在已经可以实现自动隐藏了!!!效果图如下。(比较匆忙,程序还有很多不令人满意的地方,有待改进。上周刚接到新任务,不能继续做了,只好请大家来完善了,希望你把修改后的代码发我一份,谢谢) 下面,我将一步步介绍怎样使用 DockPage、AutoHideBar。 一、通过AppWizard使用默认选项生成一个SDI界面工程。把src目录拷贝到你的工程文件夹下。 在菜单Project->Add to project->Files将六个文件加入工程中。在stdafx.h文件中加上: #define WM_AUTOHIDE_ON WM_USER+1#include "./src/sizecbar.h"#include "./src/AutoHideBar.h"二、修改 MainFrame 的继承关系。 头文件修改为:class CMainFrame : public CautoHideFrame cpp文件修改:IMPLEMENT_DYNCREATE(CMainFrame, CAutoHideFrame) BEGIN_MESSAGE_MAP(CMainFrame, CAutoHideFrame)三、 声明DockPageBar: CDockPageBar m_wndDockPageBar在OnCreate创建DockPageBar: if (!m_wndDockPageBar.Create(_T("DockPageBar"), this, CSize(230,260),TRUE,123)) { TRACE0("Failed to create DockPageBar./n"); return -1; } m_wndDockPageBar.SetBarStyle(m_wndDockPageBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); m_wndDockPageBar.EnableDocking (CBRS_ALIGN_ANY);允许Frame停靠: EnableDocking(CBRS_ALIGN_ANY);将DockPageBar停靠到左边: DockControlBar(&m_wndDockPageBar, AFX_IDW_DOCKBAR_LEFT);四、好了,停靠 Bar 已经创建好了,并且具有了自动隐藏功能。下面你就可以忘停靠条里添加标签页了!! if (!m_wndEdit.Create(WS_CHILD|WS_VISIBLE| ES_MULTILINE|ES_WANTRETURN|ES_AUTOVSCROLL, CRect(0,0,0,0), this, 123)) return -1; m_wndDockPageBar.AddPage(&m_wndEdit,"Edit",IDI_INDEX);

你可能感兴趣的:(user,Class,任务)