阅读受众需有一定MFC知识储备。

(技术支持:http://www.cnblogs.com/shuhaoc/archive/2011/06/26/cdockableform.html)

在以往很多使用CCoolBar实现窗口停靠功能,但是在VS2010中编译CCoolBar的时候会出现很多错误,我的小白也不知道如何解决。

我看到在CSDN以及其他论坛都有人发帖询问如何解决CCoolBar在VS2010 中编译错误,但是始终没有人解答。

近日偶然搜到到CDockablePane可有类似的功能,所以打算写个记录贴。记录CDockablePane的使用。

第一步: CDockablePane的简单介绍。   CDockablePane是MFC的一个类 ,至于到哪个版本的MFC才出现这个类我不清楚。

不过可以肯定的是VS2010中MFC有这个类。VC6的MFC中没有这个类,不然大家也不会在VC6中使用CCoolBar 了。

窗格是窗格的意思,Dockable是可停靠的意思。合起来就是可停靠的窗口 ,是不是和CCoolBar一样? 那太一样了,简直是一个妈生的。

估计开发CCoolBar这哥们去了微软了。

想象一下,我们实例化一个CDockbalePane的对象,然后将对话框放在里面,那是太爽了。一下子程序的窗口脉络就清晰起来。

而且后续的窗口内部的消息的处理也好办了。

第二步: CDockablePane的继承和成员。 http://msdn.microsoft.com/zh-cn/library/bb984433.aspx

继承关系如下(来自MSDN)


CObject

CCmdTarget

CWnd

CBasePane

CPane

CDockablePane

成员如下(来自MSDN)见链接

http://msdn.microsoft.com/zh-cn/library/bb984433.aspx

第三步:正式开始使用

A:使用VS2010创建一个单文档MFC程序,创建完毕之后编译。确认这一步没有出错。

B 通过类向导 创建一个继承自CDockablePane的类。
名字就叫 CMyDockablePane

创建完毕之后编译,应该是没有错误的。

C:在CMainFrame头文件中实例化一个对象,当然是CMyDockablePane的对象。

当然需要在CMainFrame头文件添加一个头文件 #include
"MyDockablePane.h"

public:

CMyDockablePane  m_MyDockablePane;

D:在CMainFrame的OnCreate函数中调用CMyDockablePane的Create函数创建窗格。

代码如下:

if (!m_MyDockablePane.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;

}

m_MyDockablePane.EnableDocking(CBRS_ALIGN_ANY);

DockPane(&m_MyDockablePane);

在这个时候就可以直接编译运行了。

效果如下。

E
:调用CMyDockablePane的EnableDocking函数配置可停靠位置。

F
:调用CMyMainFrame的DockPane函数停靠此窗格。

待续

CCoolBar 的替代方案 CDockablePane。的更多相关文章

  1. CSS3魔法堂:CSS3滤镜及Canvas、SVG和IE滤镜替代方案详解

    一.前言    IE特有的滤镜常常作为CSS3各种新特性的降级处理补充,而Adobe转向HTML5后与Chrome合作推出CSS3的Filter特性,因此当前仅Webkit内核的浏览器支持CSS3 F ...

  2. Microsoft Azure Point to Site VPN替代方案

    Microsoft Azure提供了Point to Site VPN,但有时候这并不能满足我们的需求,例如:Point to Site VPN是SSTP VPN,只能支持Window客户端拨入,而且 ...

  3. CSS3魔法堂:CSS3滤镜及Canvas、SVG和IE滤镜替代方案详解[转]

    一.前言    IE特有的滤镜常常作为CSS3各种新特性的降级处理补充,而Adobe转向HTML5后与Chrome合作推出CSS3的Filter特性,因此当前仅Webkit内核的浏览器支持CSS3 F ...

  4. Base: 一种 Acid 的替代方案

    原文链接: BASE: An Acid Alternative Pdf下载链接: Base 数据库 ACID,都不陌生:原子性.一致性.隔离性和持久性,这在单台服务器就能搞定的时代,很容易实现,但是到 ...

  5. udid替代方案

    转自http://www.cnblogs.com/zhulin/archive/2012/03/26/2417860.html UDID替代方案   背景: 大多数应用都会用到苹果设备的UDID号,U ...

  6. Windows应用替代方案接龙

    使开源软件的优势: 开源安全产品的开发.测试和发布过程完全是透明的,同时提供产品的源代码及部分的文档.通过阅读源代码,大家可以清楚地了解开源安全技术的工作原理和实现方法,在选择开源安全技术时更有把握, ...

  7. MEAN实践——LAMP的新时代替代方案(上)

    摘要:90 年代,LAMP 曾风靡一时,然而随着需求的变迁和数据流量的激增,LAMP 已不可避免的走下神坛.近日,在 MongoDB Blog 中,Dana Groce 介绍了一个基于新时代架构的实践 ...

  8. Android app Splash页的替代方案

    一般的App想要显示公司的log什么的,都会在启动的第一个页面显示,就是SplashActivity. 目前在看到一个替代SplashActivity的方案. 使用SplashActivity的时候, ...

  9. OpenSessionInViewFilter 的配置及替代方案(转)

    鸣谢:http://justsee.iteye.com/blog/1174999,http://blog.csdn.net/sunsea08/article/details/4545186 Sprin ...

随机推荐

  1. 小结:bfs

    概要: 我们在初始状态要到达终止状态可以沿着同深度的向下搜索,这样范围覆盖更广,在解的深度较小的时候十分适用. 技巧及注意: 所有状态在转移后如果要打标记一定要在进队列前打!不要在出队列才打!否则就是 ...

  2. debugging openstack with pdb

    在要开始debug的地方导入pdb: class KeypairAPI(base.Base): """Sub-set of the Compute Manager API ...

  3. leetCode 77.Combinations (组合)

    Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. For exampl ...

  4. 对Python线程池

    本文对Python线程池进行详细说明介绍,IDE选择及编码的解决方案进行了一番详细的描述,实为Python初学者必读的Python学习经验心得. AD: 干货来了,不要等!WOT2015 北京站演讲P ...

  5. 【转】Native Thread for Win32 C- Creating Processes(通俗易懂,非常好)

    http://www.bogotobogo.com/cplusplus/multithreading_win32C.php To create a new process, we need to ca ...

  6. JavaScript设计模式——观察者模式

    观察者模式,又称发布-订阅模式或消息机制,定义了一种依赖关系,解决了主题对象与观察者之间功能的耦合. 通过运用观察者模式,可以解决团队开发中的模块间通讯问题,这是模块间解耦的一种可行方案. 首先,我们 ...

  7. UnboundLocalError: local variable 'merchantCode' referenced before assignment

    问题描述:变量赋值前未定义 定位原因:变量没有结果返回,导致赋值失败

  8. Java构建网站多级菜单功能解决方案

    在网站开发的时候我们会对网站的栏目进行分类,一个栏目可以有多个子分类,一个子分类又可以有分裂,例如:新闻栏目下有每日早报和每日晚报两个栏目,其中每日早报下面又分为上海早报,北京早报,杭州早报,下面是京 ...

  9. 01.ZooKeeper安装和介绍

    1.ZooKeeper安装和启动 1.下载解压ZooKeeper ZooKeeper官方地址:http://zookeeper.apache.org/ 下载当前稳定版本:zookeeper-3.4.6 ...

  10. Java中分页功能源码实例

    一.源码(后附使用说明) package com.zhiyou100.crm.util; /** * 分页功能 * @author YangXianSheng * */ public class Pa ...