使控件和MFC窗口一起最大最小化

MFC窗口最大最小化设置 MINMAXINFO结构体内容详解 MFC 中WM_GETMINMAXINFO 是响应窗口变化的函数OnGetMinMaxInfo(MINMAXINFO* lpMMI) WM_SIZE 对应的消息响应函数OnSize(UINT nType, int cx, int cy) 1.窗口缩放边框 先调用WM_GETMINMAXINFO消息,如果发生边框大小的改变,会有WM_SIZE的响应 以下是MINMAXINFO参数实际测试结果: void CMFCuserctrlDlg::OnGetMinMaxInfo(MINMAXINFO*.. 阅读详情

1.选中对话框,右键-》属性-》消息,添加WM_SIZE函数。

2.在对话框类头文件.h里面添加:

void ReSize();
POINT old;

3.在初始化函数OnInitDialog()中添加;

	GetClientRect(&m_rect);
	old.x = m_rect.right - m_rect.left;
	old.y = m_rect.bottom - m_rect.top;
	//ShowWindow(SW_SHOWMAXIMIZED);//初始化为最大窗口

4.Resize函数实现:

void Copencv_mfc_showDlg::ReSize()
{
	float fsp[2];
	POINT Newp; //获取现在对话框的大小
	CRect recta;
	GetClientRect(&recta);     //取客户区大小  
	Newp.x = recta.right - recta.left;
	Newp.y = recta.bottom - recta.top;
	fsp[0] = (float)Newp.x / old.x;
	fsp[1] = (float)Newp.y / old.y;
	CRect Rect;
	int woc;
	CPoint OldTLPoint, TLPoint; //左上角
	CPoint OldBRPoint, BRPoint; //右下角
	HWND  hwndChild = ::GetWindow(m_hWnd, GW_CHILD);  //列出所有控件  
	while (hwndChild)
	{
		woc = ::GetDlgCtrlID(hwndChild);//取得ID
		GetDlgItem(woc)->GetWindowRect(Rect);
		ScreenToClient(Rect);
		OldTLPoint = Rect.TopLeft();
		TLPoint.x = long(OldTLPoint.x*fsp[0]);
		TLPoint.y = long(OldTLPoint.y*fsp[1]);
		OldBRPoint = Rect.BottomRight();
		BRPoint.x = long(OldBRPoint.x *fsp[0]);
		BRPoint.y = long(OldBRPoint.y *fsp[1]);
		Rect.SetRect(TLPoint, BRPoint);
		GetDlgItem(woc)->MoveWindow(Rect, TRUE);
		hwndChild = ::GetWindow(hwndChild, GW_HWNDNEXT);
	}
	old = Newp;
}

5.在OnSize函数中添加如下代码:

		if (nType == SIZE_RESTORED || nType == SIZE_MAXIMIZED){
			ReSize();
		}

最大最小化窗口时,控件就会随着改变大小了。





MFC 实现动态调整对话框控件与字体大小 MFC开发中,为了提升用户体验,我们需要实现对话框窗口的动态调整功能,即用户通过拖动窗口的边框或角可以改变窗口大小,同时窗口中的控件位置、大小及字体也随之自适应变化。这篇文章将详细介绍如何实现这样的功能。 阅读详情

相关推荐

MFC-关于工具栏最大最小化的优化

关于工具栏最大最小化的优化 问题   MFC设计界面添加工具栏之后,最大最小化频繁操作,会导致最后工具栏会被遮挡,这是个隐藏的bug,这是由于使用的网上使用最多的resize函数导致的,其实不难理解,控件边缘是浮点型,通过除乘操作必然会丢失精度,操作越多,误差就越大了,如下: void xxxDlg::resize() { float fsp[2]; POINT Newp; //get dialog size CRect recta; GetClientRect(&recta);

wsq119的博客 480

MFC窗口最大化时控件位置的调整

如图: 重载OnSize()函数进行控件调整:m_bStart在构造函数中设置为FALSE,对话框初始化函数中设置为TRUE,否则会报错。因为只有当窗口产生后才调用OnSize()函数进行控件的调整,当窗口没产生时就对窗口进行调整就会有问题。 void CFileSearchToolDlg::OnSize(UINT nType, int cx, int cy) { CDialogEx

小米的修行之路 3716

如何实现MFC窗口最大

《如何实现MFC窗口最大化以及控件最大化发生位置变动原因》的VS2010示例代码

VC++MFC 窗口最大化、最小化实现

VC++MFC 窗口最大化、最小化实现!     当利用AppWizard生成运用程序框架时,VC++已经为我们在标题条上做好了最大化,最小化及恢复按钮。     但有时我们也想在其它地方使用这些功能。这就可采用下面的办法。     在指定的消息处理函效中加入下列语句,则程序在收到该条消息后即执行窗口最小化。 WINDOWPLACEMENT lwndpl; WINDOWPLACEM

YL_WH的专栏 2万+

MFC 窗口操作(最大、最小等)

(1)最大化 SendMessage(WM_SYSCOMMAND,SC_MAXIMIZE,0);//最大化 (2)最小化 SendMessage(WM_SYSCOMMAND,SC_MINIMIZE,0);//最小化 (3)还原 SendMessage(WM_SYSCOMMAND,SC_RESTORE,0);//还原 (4)关闭 SendMessage(WM_CLOSE,0,0);//关闭 (5)居中 CenterWindow();//居中 (6)位置大小 SetWindowPos(NULL,100,100,

GAORUI_GAO的博客 1882

MFC程序运行最小化

MFC 一、简介 在调试的时候,运行程序,程序一直最小化,如何解决 二、解决方法 在初始化函数中注释掉下面的函数 ShowWindow(SW_MAXIMIZE); // CICDDlg 消息处理程序 BOOL CICDDlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_

weixin_45631738的博客 1643

MFC窗口最大最小化,以及里面控件大小也随之改变

MFC窗口最大最小化,以及里面控件大小也随之改变。

weixin_46200811的博客 595

mfc+最大最小化窗口+控件变化+图片(视频帧)显示在控件

一.添加最大最小化窗口 鼠标右键单击对话框空白处选择属性,将Maximize BoxMinimize Box修改为True,即可实现对话框最大最小化功能的添加。 二.控件变化 目的:使所用控件的大小随着对话框窗口最大最小化进行相应尺寸的变化。 思路:比如原来对话框大小为a,现在为b,原来控件大小为c,那么现在的控件大小应该为c*b/a;(注意a不能是0)。 方法:通过Windows的...

LXYnizhan的博客 1539

MFC 静态文本框使用/更改button背景色/不使能button/设置标题/不显示控件/窗口最大最小化

1 设置标题SetWindowText(_T("Lenovo Mirage AR Headset FW Upgrade Tool"));2 不显示某个控件 GetDlgItem(IDC_STATIC)->ShowWindow(SW_HIDE); 3、实现窗口最大最小化 将对话框的Border选为None,添加两个按钮,minclose,将按钮的bitmap设置为TRUE;用于添加最小

1185

MFC90条技巧-带目录(转自网上)

1."属性页的添加: 2."List Control中标题栏(Column)的添加: 3."ToolBarStatusBar中控件的添加: 4."通过Control创建的控件,对其属性的动态控制: 5."窗口的分割与停靠: 6. ①怎样在程序开始的时候让它最大化? ②vc++做出来的exe文件在窗体的右上方是没有最大最小化按钮的,怎样实现这一功能?

ZhangJian_QianRuShi的专栏 1522

MFC窗口大小最大最小化随拖动调整大小

选择需要支持的对话框属性,开启Title Bar功能,开启System Menu ,Maximize Box ,Minimize box功能,这样我们的主界面就可以支持最大化,最小化,同时Border属性设置为Resizing模式,可以拖动改变大小.//第一个保存的是对话框的Rect。通常我们的MFC窗口默认是没有可以选择的最大最小化,开发用户可以选择支持最大化,最小化属性功能.用来盖改变窗体大小,并记录窗口信息,退出时候保存,下次加载时候自动恢复上次保存的窗口大小.

u011637657的博客 2825

MFC窗口最小化最大化按钮最大最小化

转载于:https://blog.csdn.net/Bettyshasha/article/details/51603752  1.选中对话框,右键-》属性-》消息,添加WM_SIZE函数。 2.在对话框类头文件.h里面添加: void ReSize(); POINT old; 3.在初始化函数OnInitDialog()中添加;     GetClientRect(&m_rect...

屁屁屁喏漕 927

MFC对话框最小化到托盘

<br />1、在资源中的Icon中导入一个自己喜欢的图标,ID命名为IDR_MAINFRAME,将先前的IDR_MAINFRAME的图标删除掉;<br />2、在自己的Dialog头文件中定义一个变量  NOTIFYICONDATA m_nid,关于该结构体的具体信息可以查阅MSDN;<br />3、添加消息响应函数OnInitDialog(),并在该函数中添加以下代码,这样程序一启动,就在托盘中显示出了自己应用程序的图标。<br />    //---------------------------托盘

zhangjs0322的专栏 1万+

mfc实现对话框最小化到托盘以及还原

实现了一个可以支持将对话框最小化到托盘的对话框基类,通过Hide2Taskbar可实现对话框的隐藏显示

凡心所向,素履以往 810

MFC 控件大小随窗体改变而改变大小

一个基于对话框的MFC界面,怎么样才能让对话框里的控件对话框同比例变小变大?今天我一直想解决这个问题,这是师姐留给我的任务。经过在网上的大量搜素,终于找到了解决方法,其实比较简单。    一般情况下,我们新建的对话框,里面的“确定”:取消”按钮,在对话框最大化得时候,不会一起变大的,而是保持原来的大小。    最简单的情况:      当我们点击最大化按钮的时候,对话框会最大

zhoxier的专栏 2万+

MFC对话框最大化、最小化、全屏显示、可拉伸、(控件大小动态化)、滚动条

1.点击对话框,在属性里:border改为resizing,可拉伸                                         Maximize Box 改为True                                        Minimize Box 改为True                                       Vertic

hanshuning的专栏 9987

[MFC] 无边框窗口的Resize拖动效果的实现(上)

窗口是Resizing类型时 会自带resize效果(鼠标悬停在窗口边缘时 会有resize光标 点击拖动可以修改窗口的宽高) 但是实际的窗口程序开发中 通过需要去掉自带的border 此时窗口就没有自带的resize功能了 如果实现?覆盖实现这几个窗口消息: WM_NCHITTEST WM_SETCURSOR WM_NCLBUTTONDOWN 代码如下: #d

felicityWSH的博客 3624
上一篇: MFC,halcon混合编程 遍历目录文件夹下的图像并显示在对话框上
下一篇: Halcon MFC混合编程-图像显示随鼠标滚动放大缩小
zijingping
博客等级 码龄12年 78粉丝 57原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值