有时候根据实际需要,比如MFC单文档程序视图里内容少、空白一大半,需要调整MFC单文档程序窗口大小、限制单文档的最大最小尺寸。

1、  要控制一个框架的的最大最小尺寸,需要做两件事情,在CFrameWnd的继承类中处理消息WM_GETMINMAXINFO,结构MINMAXINFO设置了整个窗口类的限制,因此记  
 住要考虑工具条,卷动条等等的大小。
   
  //   最大最小尺寸的象素点(具体根据实际需要设置)
  #define   MINX   200  
  #define   MINY   300  
  #define   MAXX   300  
  #define   MAXY   400  
   
  void   CMyFrameWnd::OnGetMinMaxInfo(MINMAXINFO   FAR*   lpMMI)  
  {  
          CRect   rectWindow;  
          GetWindowRect(&rectWindow);  
   
          CRect   rectClient;  
          GetClientRect(&rectClient);  
   
          //   get   offset   of   toolbars,   scrollbars,   etc.  
          int   nWidthOffset   =   rectWindow.Width()   -   rectClient.Width();  
          int   nHeightOffset   =   rectWindow.Height()   -   rectClient.Height(); 
          lpMMI->ptMinTrackSize.x   =   MINX   +   nWidthOffset;  
          lpMMI->ptMinTrackSize.y   =   MINY   +   nHeightOffset;  
          lpMMI->ptMaxTrackSize.x   =   MAXX   +   nWidthOffset;  
          lpMMI->ptMaxTrackSize.y   =   MAXY   +   nHeightOffset;  
  }

2、在CFrameWnd的继承类的PreCreateWindow函数中去掉WS_MAXIMIZEBOX消息,禁止“最大化”。
   
  BOOL   CMyFrameWnd::PreCreateWindow(CREATESTRUCT&   cs)  
  {  
          cs.style   &=   ~WS_MAXIMIZEBOX;  
          return   CFrameWnd::PreCreateWindow(cs);  
  }

3、进行1、2步以后,可能会出现滚动条,重载WM_NCCALCSIZE消息,在OnNcCalcSize函数中写入以下2个语句。

ShowScrollBar(SB_HORZ, FALSE);//去除水平滚动条

ShowScrollBar(SB_VERT, FALSE);//去除垂直滚动条

【整理】MFC单文档程序窗口大小的设置相关推荐

  1. MFC 学习笔记(一):MFC单文档程序运行流程梳理与总结

    MFC 学习笔记(一):MFC单文档程序运行流程梳理与总结 1.MFC单文档程序运行流程 1.首先利用全局变量对象 theApp 启动应用程序 (这是因为这个全局对象,基类CWinApp中 this ...

  2. MFC单文档程序响应菜单消息的顺序

    在MFC中,新建一个单文档应用程序,将生成四个类: 在消息传递过程中,一般对于单文档类来说,对菜单的响应顺序是View类 --- Doc类---- MainFrame----- App: 新建一个单文 ...

  3. MFC单文档程序加载web网站和html文件

    使用CHtmlView类,CHtmlView类的主要功能是访问Web网站和HTML文档:该类可说是对webbrowser控件的封装: 新建一个单文档项目:选择 CHtmlView 类作为视类的基类:项 ...

  4. 用MFC单文档改写ARToolKit5.4的例子simpleLite

    RToolkit5.4自带的示例是控制台程序,用MFC单文档改写过程如下: 1.开发环境 Win10,VS2017,ARToolkit5.4 2.新建MFC单文档程序Test 在类向导中,为CTest ...

  5. VC++ MFC单文档应用程序SDI下调用glGenBuffersARB(1, pbo)方法编译通过但执行时出错原因分析及解决办法:glewInit()初始化的错误...

    1.问题症状 在VC++环境下,利用MFC单文档应用程序SDI下开发OpenGL程序,当调用glGenBuffersARB(1, &pbo)方法编译通过但执行时出错,出错代码如下: OpenG ...

  6. MFC单文档应用程序的基础

    一.口令对话框 例题1:编写一个单文档应用程序,在视图中显示自己的姓名:单击鼠标左键,在消息框中显示 鼠标左键被按下的次数:单击鼠标右键,在消息框中显示鼠标右键被按下的次数. 操作步骤: 1.创建一个 ...

  7. 基于MFC单文档的画图程序(小项目)

    基于MFC单文档的画图程序 前言 学习了一年多的MFC和Qt,对其基本用法已经熟练掌握,迫不及待的想实战一波,但是心急吃不了热豆腐,我还是踏踏实实的找一些既能复习以前知识的单子又不消耗我太多时间(最近 ...

  8. MFC单文档框架编程(二): SDI框架下的消息处理

    MFC单文档框架编程(一) ...................................................................................... ...

  9. 【数字图像处理】 二.MFC单文档分割窗口显示图片

    本文是讲述<数字图像处理>系列文章,继上篇讲述BMP格式图片和显示后,该篇讲述如何对单文档进行分割.主要是采用CSplitterWnd静态分割窗口显示图片等相关知识.本文主要结合自己的课程 ...

最新文章

  1. HorizontalScrollView里的标签改变颜色(今日头条里的功能仿照)
  2. C语言再学习 -- 再论内存管理
  3. jakarta ee_Jakarta EE贡献–入门
  4. Element表格嵌入复选框以及单选框
  5. 【Pytorch神经网络实战案例】04 使用Pytorch实现线性回归
  6. ESL:我们如何使用首云混合云产品实现提效降本
  7. java 安卓下载文件_GitHub - Charay/downloadfile: 使用Retrofit2+Rxjava+Rxandroid+okhttp的方式下载文件并存储到sd卡指定目录...
  8. 支付系统设计:对账处理(二)
  9. android 逆地址,Android高德获取逆地址编码(经纬度坐标-地址描述如省市区街道)
  10. jquery 学习笔记(二)
  11. java.lang.NoClassDefFoundError: com.android.tools.fd.runtime.AppInfo
  12. VUE小案例——奇妙清单(vue指令综合应用)
  13. 黑苹果双系统访问其他磁盘windows/U盘或移动硬盘格式NTFS
  14. 今天是10月24日程序员节,祝所有程序员节日快乐!
  15. cad中简单流程图制作_教你怎么制作出高逼格的专业流程图!
  16. oracle imp 版本错误,【exp/imp不同版本】Oracle不同版本的exp/imp使用注意事项
  17. 利用canvas实现田字格里写字,并适配移动端
  18. Linux内核的下载和解压
  19. 在linux中配置编译u-boot方法,在ZC702上运行Linux(4)-编译和使用U-Boot Linux
  20. RTX操作系统教程[02]

热门文章

  1. 输入三角形三边长,求三角形面积
  2. 睡眠排序算法c语言实现,Linux 进程必知必会
  3. 【QT课程设计】五:部分内容修正、利用opencv读入视频并进行部分图像处理
  4. 小程序·云开发实战:SCRM社交化客户管理小程序
  5. 洛谷P1053篝火晚会题解--zhengjun
  6. 【UI设计】移动设备的界面设计尺寸
  7. 电脑耳机拔出后,再插入没声音
  8. gh-ost封装脚本
  9. Excel不用函数嵌套一键完成四舍六入五成双
  10. 如何将linux装入空白硬盘,Windows 7将CDLinux装入硬盘的方法