最近因为课程设计以及个人兴趣设计的原因,正在学习CDockablePane,以下是一些成果(内容不断更新)。
编译环境:win7
编译工具:VS2010
内容一:新建一个CDockablePane派生类。
新建一个单文档
从CDockablePane派生出一个Pane类
在MainFrm中加入:
Pane pane;
在MainFrm的OnCreate的方法中加入
// TODO: 在此添加您专用的创建代码
if (!pane.Create(_T("面板"), this, CRect(0, 0, 200, 200), TRUE, 1001, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI))
{
TRACE0("Failed to create LeftPane\n");
return -1;
}
pane.EnableDocking(CBRS_ALIGN_ANY);
DockPane(&pane);
在BEGIN_MESSAGE_MAP(CMainFrame, CFrameWndEx)与END_MESSAGE_MAP()中间加入
ON_WM_CREATE()
运行得到:
然后在根据http://www.cppblog.com/longzxr/archive/2010/11/07/132860.aspx,可以在该面板中加入formview,利用formview的对话框性质,可以在其上加上一些适当的控件。