【整理】MFC单文档程序窗口大小的设置
有时候根据实际需要,比如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单文档程序窗口大小的设置相关推荐
- MFC 学习笔记(一):MFC单文档程序运行流程梳理与总结
MFC 学习笔记(一):MFC单文档程序运行流程梳理与总结 1.MFC单文档程序运行流程 1.首先利用全局变量对象 theApp 启动应用程序 (这是因为这个全局对象,基类CWinApp中 this ...
- MFC单文档程序响应菜单消息的顺序
在MFC中,新建一个单文档应用程序,将生成四个类: 在消息传递过程中,一般对于单文档类来说,对菜单的响应顺序是View类 --- Doc类---- MainFrame----- App: 新建一个单文 ...
- MFC单文档程序加载web网站和html文件
使用CHtmlView类,CHtmlView类的主要功能是访问Web网站和HTML文档:该类可说是对webbrowser控件的封装: 新建一个单文档项目:选择 CHtmlView 类作为视类的基类:项 ...
- 用MFC单文档改写ARToolKit5.4的例子simpleLite
RToolkit5.4自带的示例是控制台程序,用MFC单文档改写过程如下: 1.开发环境 Win10,VS2017,ARToolkit5.4 2.新建MFC单文档程序Test 在类向导中,为CTest ...
- VC++ MFC单文档应用程序SDI下调用glGenBuffersARB(1, pbo)方法编译通过但执行时出错原因分析及解决办法:glewInit()初始化的错误...
1.问题症状 在VC++环境下,利用MFC单文档应用程序SDI下开发OpenGL程序,当调用glGenBuffersARB(1, &pbo)方法编译通过但执行时出错,出错代码如下: OpenG ...
- MFC单文档应用程序的基础
一.口令对话框 例题1:编写一个单文档应用程序,在视图中显示自己的姓名:单击鼠标左键,在消息框中显示 鼠标左键被按下的次数:单击鼠标右键,在消息框中显示鼠标右键被按下的次数. 操作步骤: 1.创建一个 ...
- 基于MFC单文档的画图程序(小项目)
基于MFC单文档的画图程序 前言 学习了一年多的MFC和Qt,对其基本用法已经熟练掌握,迫不及待的想实战一波,但是心急吃不了热豆腐,我还是踏踏实实的找一些既能复习以前知识的单子又不消耗我太多时间(最近 ...
- MFC单文档框架编程(二): SDI框架下的消息处理
MFC单文档框架编程(一) ...................................................................................... ...
- 【数字图像处理】 二.MFC单文档分割窗口显示图片
本文是讲述<数字图像处理>系列文章,继上篇讲述BMP格式图片和显示后,该篇讲述如何对单文档进行分割.主要是采用CSplitterWnd静态分割窗口显示图片等相关知识.本文主要结合自己的课程 ...
最新文章
- HorizontalScrollView里的标签改变颜色(今日头条里的功能仿照)
- C语言再学习 -- 再论内存管理
- jakarta ee_Jakarta EE贡献–入门
- Element表格嵌入复选框以及单选框
- 【Pytorch神经网络实战案例】04 使用Pytorch实现线性回归
- ESL:我们如何使用首云混合云产品实现提效降本
- java 安卓下载文件_GitHub - Charay/downloadfile: 使用Retrofit2+Rxjava+Rxandroid+okhttp的方式下载文件并存储到sd卡指定目录...
- 支付系统设计:对账处理(二)
- android 逆地址,Android高德获取逆地址编码(经纬度坐标-地址描述如省市区街道)
- jquery 学习笔记(二)
- java.lang.NoClassDefFoundError: com.android.tools.fd.runtime.AppInfo
- VUE小案例——奇妙清单(vue指令综合应用)
- 黑苹果双系统访问其他磁盘windows/U盘或移动硬盘格式NTFS
- 今天是10月24日程序员节,祝所有程序员节日快乐!
- cad中简单流程图制作_教你怎么制作出高逼格的专业流程图!
- oracle imp 版本错误,【exp/imp不同版本】Oracle不同版本的exp/imp使用注意事项
- 利用canvas实现田字格里写字,并适配移动端
- Linux内核的下载和解压
- 在linux中配置编译u-boot方法,在ZC702上运行Linux(4)-编译和使用U-Boot Linux
- RTX操作系统教程[02]