问题解决——限制窗口的最小尺寸

以前都是用对话框做东西,这次用的SDI。

突然想限制窗口的最小尺寸,避免缩成一团,就很随意的先百度了一下。

网上好多方法,有在OnSize里面SetWindowPos或者MoveWindow的,也有在OnSizing里面用这两个函数的。

显然这都不是好办法,会刷屏乱闪。

正确而又优雅的做法很简单,处理框架窗口的WM_GETMINMAXINFO消息即可。

例如

void CMainFrame::OnGetMinMaxInfo(MINMAXINFO* lpMMI)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	if (lpMMI->ptMinTrackSize.x<=951)
	{
		lpMMI->ptMinTrackSize.x=951;
	}

	if (lpMMI->ptMinTrackSize.y<=681)
	{
		lpMMI->ptMinTrackSize.y=681;
	}

	CFrameWndEx::OnGetMinMaxInfo(lpMMI);
}

只要指定了值,剩下的事情,MFC会给你做好,就是这么简单。

问题解决——限制窗口的最小尺寸

时间: 2024-10-31 00:02:10

问题解决——限制窗口的最小尺寸的相关文章

问题解决——限制窗体的最小尺寸

曾经都是用对话框做东西,这次用的SDI. 突然想限制窗体的最小尺寸,避免缩成一团,就非常任意的先百度了一下. 网上好多方法,有在OnSize里面SetWindowPos或者MoveWindow的,也有在OnSizing里面用这两个函数的. 显然这都不是好办法,会刷屏乱闪. 正确而又优雅的做法非常easy,处理框架窗体的WM_GETMINMAXINFO消息就可以. 比如 void CMainFrame::OnGetMinMaxInfo(MINMAXINFO* lpMMI) { // TODO: 在

delphi 函数isiconic 函数 判断窗口是否最小化

http://blog.sina.com.cn/s/blog_66357ab901012t2h.html delphi 函数isiconic 函数 判断窗口是否最小化 (2012-05-26 22:00:21) 转载▼ 标签: 杂谈   The IsIconic function determines whether the specified window is minimized (iconic). 函数isiconic返回值取决于指定窗口是否已经最小化. BOOL IsIconic(HWN

获取浏览器高度 窗口高度 元素尺寸 偏移属性

screen.width screen.height screen.availHeight //获取去除状态栏后的屏幕高度 screen.availWidth //获取去除状态栏后的屏幕高度 一.通过浏览器获得屏幕的尺寸 二.获取浏览器窗口内容的尺寸 //高度 window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight //宽度 window.innerWidth || doc

VC限定窗口最小尺寸或最大尺寸

1.添加消息映射: BEGIN_MESSAGE_MAP(CYdToolDlg, CDialog) ON_WM_GETMINMAXINFO() END_MESSAGE_MAP() 2.添加消息处理函数: void CYdToolDlg::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) { lpMMI->ptMinTrackSize.x = 640; //x宽度 lpMMI->ptMinTrackSize.y = 480; //y高度 CDialog::OnGetMi

Qrcode生成二维码的参数总结 及最小尺寸的测试

Qrcode生成二维码,做过很多实验,探索最小规格的二维码到底是多少尺寸,和最高规格的二维码到底是多大尺寸.现在我总结总结: 有两种思路: 1.生成规格高的二维码,然后压缩到自己想要的尺寸的二维码.这种:压缩算法不好的时候会很坑爹. 2.根据调整的参数生成原图,这种图是比较清晰的,打印出来都可以很好的被识别. 先说说第二种吧:根据测试, 1.不设置任何东西时:根据测试 最小的二维码尺寸是45--47:宽高(对于1---14个字符), 第二梯度:54-56:宽高(对于15--26字符) 第三梯度:

ubuntu内窗口最大最小化

我用的dell笔记本,开始的时候,需要修改dell笔记本的BIOS,里面有一个 Funtion Key 一开始定义的行为是多媒体的,需要改成默认行为,具体记不清了, 反正知道这个,肯定知道哪里找. 然后,是ubuntu下窗口的最大最小化. 所有的窗口都已养的快捷键:"最大化"是ctrl+super(或win)+上"还原"是ctrl+super(或win)+下"最小化"是ctrl+alt+0,就是O和P两个键上边的那个零键.

C#窗口实现最小化到系统托盘

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace notifyIconShow { public partial class ColdJoke : Form {

窗口变化相关消息 OnSize、OnSizing和OnGetMinMaxInfo

最近用到窗口变化的一些东西,遇到几个相关的消息函数,简要分析,作为备忘. 3个消息分别是:WM_SIZE.WM_SIZING.WM_GETMINMAXINFO:分别对应相应的处理函数:OnSize.OnSizing.OnGetMinMaxInfo. 当窗口大小发生变化时,响应的顺序依次是:WM_GETMINMAXINFO-->WM_SIZING-->WM_SIZE. OnGetMinMaxInfo 这个函数在窗口初始化的时候会被调用一次,当窗口大小发生改变的时候也会被调用.利用这个函数,可以比

C++ : 窗口变化相关消息 OnSize、OnSizing和OnGetMinMaxInfo,onsizeonsizing

3个消息分别是:WM_SIZE.WM_SIZING.WM_GETMINMAXINFO:分别对应相应的处理函数:OnSize.OnSizing.OnGetMinMaxInfo. 当窗口大小发生变化时,响应的顺序依次是:WM_GETMINMAXINFO-->WM_SIZING-->WM_SIZE. OnGetMinMaxInfo 这个函数在窗口初始化的时候会被调用一次,当窗口大小发生改变的时候也会被调用.利用这个函数,可以比较方便的实现窗口最大最小尺寸的控制. 参数lpMMI是一个结构体指针,其中