博客
关于我
MFC在CDockablePane中添加对话框
阅读量:237 次
发布时间:2019-02-28

本文共 738 字,大约阅读时间需要 2 分钟。

1.创建MFC项目,选择使用菜单栏和工具栏,这时会发现CMainFrame基类是CFraneWndEx

 

2.建好项目打开类向导,添加MFC类,基类是今天的主角CDockablePane

3.在CMainFrame类的OnCreate中添加如下代码

 

if (!dock.Create(_T("窗口"), this, CRect(0, 0, 500, 500), TRUE, 1000,WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_ALIGN_BOTTOM | CBRS_FLOAT_MULTI))	{		return FALSE;	}	dock.EnableDocking(CBRS_ALIGN_ANY);	DockPane(&dock);//

其中dock是类CDock的成员变量,运行程序出现如下窗口

4.添加对话框

这时我们已经添加出了悬浮窗口,接下来的任务就是将对话框与悬浮窗口相关联。

(1)在资源视图中添加新的对话框,注意,对话框必须有Child属性,Border设置为None,将对话框生成类,我们这里叫做CDUIHUA。

(2)在对话框中 添加几个按钮,在CDOCK类中添加OnCreate函数,在其中添加一下代码将对话框和窗口相关联,其中duihua是DUIHUA类的成员函数

运行图如下

发现一个问题就是在拉大窗口会出现上图的情况,是因为CDock重绘出现错误。

有两种解决方法

第一种就是CDock中添加函数OnPain,并在函数中添加如下代码,使背景发生重绘为白色。

 第二种就是在CDock中添加函数OnSize,,并在函数中添加如下代码,这样使整个窗口被对话框所覆盖/

转载地址:http://qtip.baihongyu.com/

你可能感兴趣的文章
No static resource favicon.ico.
查看>>
no such file or directory AndroidManifest.xml
查看>>
No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
查看>>
NO.23 ZenTaoPHP目录结构
查看>>
no1
查看>>
NO32 网络层次及OSI7层模型--TCP三次握手四次断开--子网划分
查看>>
NOAA(美国海洋和大气管理局)气象数据获取与POI点数据获取
查看>>
NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata
查看>>
node
查看>>
node exporter完整版
查看>>
node HelloWorld入门篇
查看>>
Node JS: < 一> 初识Node JS
查看>>
Node JS: < 二> Node JS例子解析
查看>>
Node Sass does not yet support your current environment: Linux 64-bit with Unsupported runtime(93)解决
查看>>
Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime(72)
查看>>
Node 裁切图片的方法
查看>>
node+express+mysql 实现登陆注册
查看>>
Node+Express连接mysql实现增删改查
查看>>
node, nvm, npm,pnpm,以前简单的前端环境为什么越来越复杂
查看>>
Node-RED中Button按钮组件和TextInput文字输入组件的使用
查看>>