DockablePane

可停靠窗体DockablePane

运行环境:win7 + VS2008 sp1


1.新建

应用程序类型:单文档,visualStudio项目类型
高级功能:可以去除会自动生成的高级框架窗格


2.插入资源Dialog

         为该对话框添加一个类CMyDlg,继承Dialog类


3.添加MFC类,继承DockablePane类

CMyDlg   m_dlg;

添加事件

intCDock::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

     if (CDock::OnCreate(lpCreateStruct) == -1)

         return -1;

 

     if (!m_ dlg.Create(IDD_DIALOG1, this))

     {

         TRACE("未能创建底部对话框");

         return -1;

     }

     m_ dlg.ShowWindow(SW_SHOW);

 

     return 0;

}

 

void CDock::OnSize(UINTnType, int cx, int cy)

{

     CDock::OnSize(nType, cx, cy);

 

     m_ dlg.MoveWindow(0, 0, cx, cy);

}


4.MainFrm创建停靠窗体

CDock                m_wndDock;  

OnCreate里添加以下代码

// 定义可停靠窗体样式

static const DWORD AFX_DEFAULT_DOCKING_PANE_STYLE= AFX_CBRS_FLOAT |AFX_CBRS_CLOSE|AFX_CBRS_AUTOHIDE |AFX_CBRS_RESIZE;

     // 创建底部可停靠窗体

     if(!m_wndBottomDock.Create(TEXT(""), this, CRect(0, 0, 200, 200), TRUE,IDD_BOTTOM,

WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS| WS_CLIPCHILDREN | CBRS_BOTTOM | CBRS_FLOAT_MULTI, AFX_DEFAULT_DOCKING_PANE_STYLE,AFX_CBRS_CLOSE))

     {

         TRACE("未能创建右侧可停靠窗体");

         return -1;

     }

     m_wndBottomDock.EnableDocking(CBRS_ALIGN_BOTTOM);

     EnableDocking(CBRS_ALIGN_BOTTOM);

DockPane(&m_wndBottomDock);

     // 关闭自动保存界面到注册表

this->GetDockingManager()->DisableRestoreDockState(TRUE);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值