CDockablePane类可以用来创建停靠栏。可以将其他控件集成到CDockablePane的派生类中。下文描述如何将对话框集成到CDockablePane中。

a)      创建单文档应用程序;

b)     加入对话框资源,注意,对话框必须有Child属性,Border设置为None

c)      为对话框创建类CDialogEmbeded,基类为CDialogEx

d)     创建派生自CDockablePane的类CDockableDlg

e)     为CDockableDlg添加CDialogEmbeded类型的成员变量m_dlgEmbeded;

f)      重载CDockableDlg的OnCreate函数

   int CDockableDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)

   {

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

      return -1;

      // TODO:  在此添加您专用的创建代码

m_dlgEmbeded.Create(CDialogEmbeded::IDD,this);

m_dlgEmbeded.ShowWindow(SW_SHOW);

return 0;

  }

g)     重载CDockableDlg的OnSize函数

void CDockableDlg::OnSize(UINT nType, int cx, int cy)

{

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

// TODO:  在此添加您专用的创建代码

if(m_dlgEmbeded.GetSafeHwnd())

{

CRect rect;

GetClientRect(&rect);

m_dlgEmbeded.MoveWindow(rect);

    }

  }

h)     重载CDockableDlg的OnDestory函数

void CDockableDlg::OnDestroy()

{

CDockablePane::OnDestroy();

// TODO: 在此处添加消息处理程序代码

m_dlgEmbeded.DestroyWindow();

}

i)       在框架类中添加CDockableDlg对象m_dockDlg

j)       在CMainFrame类的OnCreate函数中添加以下代码,Create函数里面的1001是这个停靠栏的ID,这里是随便指定的一个数值,只要不和其他已用资源重复即可,真正应用的时候,以在字符串表中添加一个ID

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

EnableDocking(CBRS_ALIGN_ANY);

m_dockDlg.Create("Dock Dlg",this,CRect(0,0,200,200),TRUE,1001,

WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS|WS_CLIPCHILDREN|CBRS_LEFT|CBRS_FLOAT_MULTI);

m_dockDlg.EnableDocking(CBRS_ALIGN_ANY);

DockPane(&m_dockDlg);

return 0;

}

k)      疑问:m_dockDlg什么时候销毁?

在CDockablePane中嵌入对话框的更多相关文章

  1. 在CDockablePane中嵌入CFormView

    CDockablePane中嵌入CFormView与嵌入CDialogEx稍有不同,差异主要体现在CFormView类本身与CDialogEx类的不同上,CDockablePane层面的操作完全相同. ...

  2. MFC在对话框中嵌入对话框

    在对话框中嵌入子对话框 代码 m_childDlg = new CChildDlg(); m_childDlg->Create(IDD_CHILD_DIALOG,AfxGetApp()-> ...

  3. WPF中嵌入普通Win32程序的方法

    公司现在在研发基于.Net中WPF技术的产品,由于要兼容旧有产品,比如一些旧有的Win32程序.第三方的Win32程序等等,还要实现自动登录这些外部Win32程序,因此必须能够将这些程序整合到我们的系 ...

  4. Visual Studio 中可执行文件中嵌入的清单文件

    概要 本分步指南介绍如何在 Microsoft Visual Studio 2005年中的可执行文件 (.exe) 文件中嵌入的清单文件.如果您要开发"认证 Windows Vista&qu ...

  5. C#开发ActiveX插件-aspx中嵌入

    刚到新的公司,第一周让我熟悉一下他们用的silverlight和arcgis.这周,也就是昨天分配了我一个小小的任务! 哪个项目的不知道,是让我实现一个在aspx中嵌入activeX插件! 在网上找了 ...

  6. 在VC/MFC中嵌入Google地图——图文并茂

    近期须要实验室须要将在无人机地面站中嵌入地图,在网上找了非常多资料,最终有些眉目了, 首先.做这个须要用到的知识有.MFC控件.MFC类库.JavaScript脚本语言.Google API.Goog ...

  7. 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器

    本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...

  8. 理解javascript中的对话框

    前面的话 通常我们调试程序时,如果需要阻塞效果,则要用到alert().但除了alert()以外,window对象还提供了其他3种对话框.本文将详细介绍window对象中的对话框 定义 系统对话框与在 ...

  9. Qt界面中嵌入其他exe程序的界面,使用Qt5

    下面用一个小例子来演示如何在Qt的界面中嵌入其他exe程序的界面,最终效果如下图所示.本文参考了 http://blog.csdn.net/jiaoyaziyang/article/details/4 ...

随机推荐

  1. digitalocean解释:private networking和user data、IPv6是什么意思

    digitalocean vps后台新建droplet的时候,底部会有available settings,里面有四个选项,大多数用户不懂啥意思,我今天解释下: Private Networking ...

  2. 阿里云 镜像 源 debian

    /etc/apt/sources.list deb http://mirrors.aliyun.com/debian wheezy main contrib non-freedeb-src http: ...

  3. 第三次冲刺spring会议(第六次会议)

    [例会时间]2014/5/25 21:15 [例会地点]9#446 [例会形式]轮流发言 [例会主持]马翔 [例会记录]兰梦 小组成员:兰梦 ,马翔,李金吉,赵天,胡佳奇

  4. 倒叙筛除list

    for(int i=list.Count-1;i>=0;i--) {    if(list[i])   {     list.RemoveAt(i);   } }

  5. 工具类 util.img

        /**     * @description transform emotion image url between code     * @author x.radish     * @pa ...

  6. 依赖跟踪如何工作的(How dependency tracking works)

    这一块主要是理论的讲解,本人刚接触这块不久,就不敢翻译了,请参见园子里其他人的现有文章 http://www.cnblogs.com/TomXu/archive/2011/11/22/2256820. ...

  7. Entity Framework Tools install to VS 2015

    因为在VS2013,2015里不再支持Sql compact 数据库的显示, 但是我们可以通过安装EF tools扩展来支持,参考地址:http://thedatafarm.com/data-acce ...

  8. pgadmin3 新建服务器出现错误 Peer authentication failed for user "postgres" 的解决办法

    转自:http://blog.csdn.net/tingyuanss/article/details/43763899 用pgadmin3 新建服务器出现错误 Peer authentication ...

  9. 一些常见warning的原因和解决方法

    在入职三周后,终于赶齐了接手项目落下两个月的项目,有了一些自己的空闲时间对项目进行整理.主要整理包括类目的整合,从原来一个系统文件夹下几百个文件整改为以MVC设计思想为原则的分文件夹整理类目,井然有序 ...

  10. C# List 扩展排序

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Comm ...