前言        

  当前许多优秀的软件都采用“多视”技术。

所谓“多视”,是指在同一个框架窗口里同时显示多个视图。

通过运用这种技术,可以在框架的有限控件内同时提供用户更大的信息量,并且使得用户界面更加友好,增强软件的可操作性。

拆分类型

MFC支持两种类型的拆分窗口:静态的和动态的。

  静态拆分窗口:行列数在拆分窗口被创建时就设置好了,用户不能更改,但是用户可以缩放各行各列。一个静态拆分窗口最多可以包含16行16列。要找一个使用了静态拆分窗口的应用程序,只要看一下Windows管理器即可。

  动态拆分窗口:最多可以有两行两列,但它们可以相互拆分和合并。VC就使用了动态拆分窗口使得可以同时编辑源程序文件的两个以上不同的部分。

  选择静态或动态拆分的一个准则是是否希望用户能够交互地修改拆分窗口的行列配置。另一个决定因素是计划在拆分窗口中使用的视图种类。

CSplitterWnd

CSplitterWnd类主要为窗口分割提供了封装,窗口被分成各个窗格后,由该类的对象负责管理。 

   

多视类之间的交互

  在MFC程序中,各个视类之间进行数据交互是通过Doc类来完成的,由CDocument类来处理文档,而由CView类来显示。即将数据存储到CDocument类中,而用到数据的时候再从该类中读取。

锁定切分条

  当用户创建好分割窗口后,有时并不希望通过拖动切分条来调节窗口的大小。这时就必须锁定切分条。锁定切分条的最简单的方法莫过于不让CSplitterWnd来处理WM_LBUTTONDOWN,WM_MOUSEMOVE,WM_SETCURSOR消息,而是将这些消息交给CWnd窗口进行处理,从而屏蔽掉这些消息。

切分条的定制

  由Window自己生成的切分条总是固定的,没有任何的变化,我们在使用一些软件比如ACDSee的时候却能发现它们的切分条却是和自动生成的切分条不一样的。那么如何定制自己的切分条呢?通过重载CSplitterWnd的虚方法OnDrawSplitter和OnInvertTracker可以达到这样的目的。

一个比较完整的例子:http://pan.baidu.com/s/1ge39Inh

本文转载自:https://www.cnblogs.com/MakeView660/p/6917989.html

VC++ 窗口拆分CSplitterWnd相关推荐

  1. VC窗口刷新InvalidateRect和…

    学习了 原文地址:VC窗口刷新InvalidateRect和UpdateWindow 作者:玩世不恭 首先说说WM_PAINT这个重要的消息: The WM_PAINT message is gene ...

  2. VC窗口自由的调整大小的实现

    VC窗口自由的调整大小的实现.具体代码和详细的英文说明,大家可以看 原文 ,本篇是使用后的具体细节说明. 1,将在对话框的属性里设置 边框可调整大小的 2,在主窗体cpp添加 #include Eas ...

  3. 如何在vc的拆分窗口中使用CFormView派生类

    在编辑CFormView派生类的资源模板的时候,一定要将其Style设置为child,不然程序在编译的时候没错,运行的时候会出现异常:切记切记. 设置: 在该CFormView对话框资源模板中右键-& ...

  4. VC++窗口对象和句柄

    句柄是窗口资源的标识,它标识资源在系统中所占用的内存块,应用程序通过窗口句柄对窗口进行操作.除了窗口句柄之外,任何一种资源都有它自己的句柄,比如光标句柄.位图句柄等.窗口ID是窗口在应用程序中的唯一标 ...

  5. 【转】VC窗口刷新InvalidateRect和UpdateWindow RedrawWindow

    首先说说WM_PAINT 这个重要的消息: The WM_PAINT message is generated by the system and should not be sent by an a ...

  6. 【 Visual C++】游戏开发笔记之二——最简单的DirectX,vc窗口的编写

    笔记一中我们介绍了如何用代码创建空的win32窗口,然而创建空的win32窗口只完成了一半的工作,接下来要做的工作是设置Direct3D,从而可以在屏幕上渲染图形. Direct3D要调用很多函数才能 ...

  7. VC窗口形状的绘制---SetWindowRgn

    #define PICWIDTH    365 #define PICHEIGHT   160 //CRgn Test;     //X1,Y1 ---------- Long,矩形左上角X,Y坐标 ...

  8. 鸡啄米vc++2010系列40(文档、视图和框架:分割窗口)

    分割窗口概述 分割窗口,顾名思义,就是将一个窗口分割成多个窗格,在每个窗格中都包含有视图,或者是同一类型的视图,或者是不同类型的视图. MFC分割窗口的方式有两种,动态分割和静态分割. 动态分割窗口通 ...

  9. VC++ 6.0多窗口打开多个.dsw工程文件时

    WIN10: 1.win+R---->输入 regedit,点击[确定]. 2.找到注册表中\HKEY_CLASSES_ROOT\dspfile\shell项 3.手动添加open项---> ...

  10. excel冻结窗口_猴哥讲述:excel工作表的窗口进行拆分与冻结——固定与解冻窗口...

    excel如何冻结拆分窗口,一般我们在使用excel工作表的时候如果说excel间距比较大,数据比较多,我们可以把excel工作表的窗口进行拆分与冻结,下面我们就来学习一下在excel中对窗口拆分和冻 ...

最新文章

  1. 设计建造者模式java代码,Java设计模式-建造者模式
  2. 数据中心柴油发电机组功率
  3. 从零入门 Serverless | 一文详解 Serverless 架构模式
  4. 开发者看过来,5 行代码实现身份认证,Authing 如何做到的?
  5. Acoustica 7 Premium Edition for Mac(音频处理软件) v7.3.28
  6. 12 MM配置-主数据-定义物料组
  7. preg_match_all使用实例
  8. Hadoop系列之DistributedCache用法
  9. mini 打开窗口提交表单,按钮在页脚
  10. 大数据_MapperReduce_从CSV文件中读取数据到Hbase_测试---Hbase工作笔记0022
  11. 你还要我怎样的JS系列(4) -- 作用域链
  12. python 在Excel中新增一列
  13. PHP可变变量($$)
  14. 我们需要什么样的应急手册(佐岸)
  15. Android开发技巧——Camera拍照功能
  16. 免费在线图片识别文字工具
  17. [siggraph13]《命运》的实时渲染技术
  18. 逐行扫描(Progressive scanning),隔行扫描(interlace scanning),场
  19. python画饼图函数_python的matplotlib饼状图
  20. 友推app微信分享功能集成攻略

热门文章

  1. Linux下Oracle数据库的启动过程、关闭过程
  2. 新华字典mysql_数据库优化篇---MySql索引优化详解
  3. python如何处理inp文件_python 之文件操作
  4. linux备份文件_aptclone:备份已安装的软件包并在新的 Ubuntu 系统上恢复它们 | Linux 中国...
  5. 网页授权前端 java_在开发网页授权获取用户基本信息时code是null
  6. python time函数的功能_Python中Python时间模块的常用功能,Pythontime,函数
  7. 上大计算机专业,高校“计算机”专业排行榜,东大完成逆袭,上交大不敌哈工大...
  8. springboot 返回输出流_Spring Boot 静态资源处理,妙招
  9. windows mysql memcached,Windows上的Memcached(不是memcache)PHP扩展
  10. java集合框架中迭代器的作用_Java中的集合框架之迭代器