静态切割窗体+关联对话框
静态切割窗体
创建静态切割窗体的步骤为:
1. 在父框架类中定义一个CSplitterWnd类型的成员对象。
2. 重载父框架类的CFrameWnd::OnCreateClient成员函数。
3. 在重载的CFrameWnd::OnCreateClient函数中调用CSplitterWnd成员对象的CreateStatic成员函数,然后能够调用CSplitterWnd成员对象的CreateView成员函数为每一个窗格创建视图。
实例:在主框架窗体中的客户区创建一个两行一列的静态切割窗体:(首先创建一个名为“Example34”的MFC单文档project)
1. 在MainFrm.h文件里为CMainFrame类加入成员对象:CSplitterWnd m_wndSplitter;。
2. 在Class View类视图中找到CMainFrame类,右键点击。在右键菜单中选择Properties,就会显示属性页。然后在属性页的工具栏上点击Tip为Overrides的button,以下的列表中就列出了可以重载的函数,找到OnCreateClient生成重载函数。
3. 在MainFrm.cpp文件里找到刚重载的OnCreateClient函数进行改动。由于鸡啄米没有新建其它视图类,所以上下两个窗格的视图都是CExample34View。为了能识别CExample34View类,还需在MainFrm.cpp文件里加入#include "Example34View.h",在Example34View.h文件里加入#include "Example34Doc.h"。终于OnCreateClient函数改动例如以下:
- BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
- {
- // TODO: Add your specialized code here and/or call the base class
- CRect rc;
- // 获取框架窗体客户区的CRect对象
- GetClientRect(&rc);
- // 创建静态切割窗体。两行一列
- if (!m_wndSplitter.CreateStatic(this, 2, 1))
- return FALSE;
- // 创建上面窗格中的视图
- if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CExample34View), CSize(rc.Width(), rc.Height()/2), pContext))
- return FALSE;
- // 创建以下窗格中的视图
- if (!m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CExample34View), CSize(rc.Width(), rc.Height()/2), pContext))
- return FALSE;
- return TRUE;
- //return CFrameWndEx::OnCreateClient(lpcs, pContext);
- }
4. 执行程序,在结果界面中关掉其它面板后效果例如以下:
假设大家想创建在当中某个窗格中再嵌套切割窗体,那么就须要再定义一个CSplitterWnd对象,以父窗格所在的CSplitterWnd对象为父框架窗体创建切割窗体就可以。
怎样将子窗体和对话框关联起来?
Class View,右击project名,Class Wizard,Add Class下拉菜单选择MFC Class...,填写类名CInfoView并选择基类为CFormView。此时会自己主动生成InfoView.h和InfoView.cpp并自己主动生成了一个对话框。在MainFrm.cpp文件里包括头文件InfoView.h
最后,将上面代码改动为:
- if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CInfoView), CSize(rc.Width(), rc.Height()/2), pContext))
- return FALSE;
如此一来,上面的子窗体就和对话框关联起来了。也就是说,上面的子窗体显示的是该对话框。
转载于:https://www.cnblogs.com/gccbuaa/p/7264381.html
静态切割窗体+关联对话框相关推荐
- C# 静态函数调用窗体控件
C# 静态函数调用窗体控件 回调函数方法是静态函数,需要调用窗体控件,赋值或取值. 定义: public static Form1 mainFrm; mainFrm = this; public pa ...
- 一种用户体验-显示对话框时灰化你的主窗体
袁永福 ( http://www.xdesigner.cn ) 2007-8-10 程序全部源代码下载(工程文件使用VS.NET2003格式):/Files/xdesigner/DisableMask ...
- 思科bfd静态路由切换_思科路由器与华为路由器静态路由关联双向BFD配置
这里的思科路由器是C7609.按照官网文档,C7609配置BFD的大概步骤如下: 1.在接口下配置bfd和相关参数: interface gx/x bfd interval 400 min_rx 40 ...
- Qt的对话框与窗口--Qt中主要的窗体类及其用途
Qt中主要的窗体类及其用途 常用的窗体基类是QWidget.QDialog和QMainWindow,在创建GUI应用程序时选择窗体基类就是从这3个类中选择.QWidget直接继承于QObjec ...
- 静态路由关联下一跳与出接口
在华为设备上,静态路由可关联下一跳或者出接口,或者同时关联. 接下来我们探究静态路由写法不同有何区别 R1: int g0/0/0 ip add 192.168.12.1 24 ip route-st ...
- duilib底层机制剖析:窗体类与窗体句柄的关联
转载请说明原出处,谢谢~~ 看到群里朋友有人讨论WTL中的thunk技术,让我联想到了duilib的类似技术.这些技术都是为了解决c++封装的窗体类与窗体句柄的关联问题. 这里是三篇关于thunk技术 ...
- [Delphi]罗技无限灵貂,驱动程序扩展补丁-Logz V3.0 (所有四向滚轮鼠标、应用窗体对话框均能通用)
摘要:利用Delphi6自己开发的后台程序,在官方提供的SetPoint V2.40驱动程序以及笔者自行编写的扩展补丁V1.0.V2.0的基础上,再一次自定义扩展了鼠标上的众多功能键,连滚轮的功能也扩 ...
- C#WindowsForm常用窗体工具
目录 1.Button(按钮):用于触发操作或执行特定的功能. 按钮通常具有以下特征和属性: 2.Label(标签):用于显示文本或提示信息. Label 控件具有以下特征和属性: Label 控件通 ...
- 【UML 建模】UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战
发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...
最新文章
- php导出excel(xls或xlsx)(解决长数字显示问题)
- React使用ES6语法重构组件代码
- WinForm窗体中如何在一个窗体中取到另一个窗体的值
- 你的密码已泄露!使用C#阻止弱密码
- java数据库编程——执行查询操作(二)
- 如何将Java应用程序置于Apache HTTP服务器之后
- LeetCode 1042. 不邻接植花(图的数据结构)
- 我们在使用计算机时,不能做什么?,11秋季学期计算机应用技术基础学习周期_01任务-在线作业[1]1...
- mysql表分区数量限制_MySQL分区表的局限和限制详解
- 《趣学JavaScript——教孩子学编程》——1.5 本章小结
- Zabbix 5.0使用方法探索及记录
- linux nmon安装
- [转]SQL Collation冲突解决 临时表
- Sublime常用快捷键
- 简单架设Jabber 局域网即时通讯服务器
- python判断_python判断与或
- toMap函数 java.lang.IllegalStateException: Duplicate key 123 (attempted merging values 123 and 124)
- 【定时任务】Springboot定时任务
- 多渔:赚钱是场漫长的修行
- centos6.3下2T以上大硬盘如何部署和使用
热门文章
- 我的Android进阶之旅------Java字符串格式化方法String.format()格式化float型时小数点变成逗号问题...
- 【GIT】Github上传本地代码详解
- jquery.form 和MVC4做无刷新上传DEMO
- 收藏:JavaScript
- struts 2 标签之s:tree/和s:treenode/简单实例
- SharePoint中修改密码的WEB Part之终极版:即可以修改AD,又可以修改本机用户密码的Web Part!!...
- Oracle游标学习笔记
- C#String.PadLeft函数,文本对齐以及填补解决方案
- GOOGLE域名存在漏洞,可以用来建立钓鱼站点(目前已临时被封闭)
- Android Fragment 解析(下)