在CDockablePane中嵌入对话框
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中嵌入对话框的更多相关文章
- 在CDockablePane中嵌入CFormView
CDockablePane中嵌入CFormView与嵌入CDialogEx稍有不同,差异主要体现在CFormView类本身与CDialogEx类的不同上,CDockablePane层面的操作完全相同. ...
- MFC在对话框中嵌入对话框
在对话框中嵌入子对话框 代码 m_childDlg = new CChildDlg(); m_childDlg->Create(IDD_CHILD_DIALOG,AfxGetApp()-> ...
- WPF中嵌入普通Win32程序的方法
公司现在在研发基于.Net中WPF技术的产品,由于要兼容旧有产品,比如一些旧有的Win32程序.第三方的Win32程序等等,还要实现自动登录这些外部Win32程序,因此必须能够将这些程序整合到我们的系 ...
- Visual Studio 中可执行文件中嵌入的清单文件
概要 本分步指南介绍如何在 Microsoft Visual Studio 2005年中的可执行文件 (.exe) 文件中嵌入的清单文件.如果您要开发"认证 Windows Vista&qu ...
- C#开发ActiveX插件-aspx中嵌入
刚到新的公司,第一周让我熟悉一下他们用的silverlight和arcgis.这周,也就是昨天分配了我一个小小的任务! 哪个项目的不知道,是让我实现一个在aspx中嵌入activeX插件! 在网上找了 ...
- 在VC/MFC中嵌入Google地图——图文并茂
近期须要实验室须要将在无人机地面站中嵌入地图,在网上找了非常多资料,最终有些眉目了, 首先.做这个须要用到的知识有.MFC控件.MFC类库.JavaScript脚本语言.Google API.Goog ...
- 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器
本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...
- 理解javascript中的对话框
前面的话 通常我们调试程序时,如果需要阻塞效果,则要用到alert().但除了alert()以外,window对象还提供了其他3种对话框.本文将详细介绍window对象中的对话框 定义 系统对话框与在 ...
- Qt界面中嵌入其他exe程序的界面,使用Qt5
下面用一个小例子来演示如何在Qt的界面中嵌入其他exe程序的界面,最终效果如下图所示.本文参考了 http://blog.csdn.net/jiaoyaziyang/article/details/4 ...
随机推荐
- Servlet图片上传
package com.servlet; import java.io.DataInputStream; import java.io.FileOutputStream; import java.io ...
- Hibernate中session.get()和session.load()的区别
-- 翻译自https://www.mkyong.com/hibernate/different-between-session-get-and-session-load/ 很多时候你会发现,使用Hi ...
- html readonly和disabled的区别
今天我创建了一个html表单,其中一个字段是sequence number, 这个字段是用ajax异步从后台获取自动生成的,我不希望用户修改这个值,于是我使用了如下html代码来处理: <for ...
- HUST 1404 Hamming Distance(字符串)
Hamming Distance Description Have you ever heard of the Hamming distance. It is the number of positi ...
- css-文本垂直居中(转)
css-文本垂直居中(转) 在说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?即使是某些浏览器不支持我只需做少许的CSS Hack技术就可以啊!所以在 ...
- NOIP2002-普及组复赛-第二题-级数求和
题目描述 Description 已知:Sn= 1+1/2+1/3+…+1/n.显然对于任意一个整数K,当n足够大的时候,Sn大于K. 现给出一个整数K(1<=k<=15),要求计算出一个 ...
- java的String类型为什么是final
(转自:http://www.cnblogs.com/ikuman/archive/2013/08/27/3284410.html) 最佳答案: 主要是为了“效率” 和 “安全性” 的缘故.若 Str ...
- Java判断PC端还是移动端
package com.*.*.*; import java.io.IOException;import java.util.regex.Matcher;import java.util.regex. ...
- .h 与 .hpp 文件
hpp,顾名思义等于.h加上.cpp,在boost.Xerces等开源库中频繁出现,偶在机缘巧合之下,学得一招半式,遂记录如下,以供参考学习. hpp,其实质就是将.cpp的实现代码混入.h头 ...
- TextView赋值int型,并显示
textview赋值int型采用text.setText(FPS+""); FPS为int型变量 或者在thread线程需要在主Activity中显示文字,可以调用: runOnU ...