VC控件随窗口最大化而变大或缩小

本文介绍了一种方法,使对话框中的控件能够随着窗口的最大化和最小化自动调整大小。通过在主对话框和子对话框的OnSize消息函数中添加特定代码,可以实现所有控件的动态缩放。对于包含多个子对话框的情况,需要分别调整每个子对话框的位置和大小。同时,文中提供了针对单个控件和多个控件的缩放示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      以下代码是我在网上看到后整理,并已经过测试,可以直接使用。


一. 本对话框实现所有控件随窗口最大化或恢复原状:

1.将SizeAdjust类添加到工程中,.cpp与.h文件。

2.在**dlg.cpp文件#include"SizeAdjust.h"
3.定义一全局CRect变量rectWholerect,在初始化函数中:GetClientRect(rectWholerect);//获取当前窗口的大小
4.添加OnSize(UINT nType, int cx, int cy) 消息函数,在函数中加入:
CSizeAdjust sizeadjust;
sizeadjust.OnSizeAdjust(rectWholerect,this,cx,cy);
即可实现,本对话框中所有控件随窗口大小自动变化。


二. 如果主对话框中有tab控件,即主对话框中有若干个子对话框,怎样改变里面的控件大小呢:

1.在主对话框的OnSize(UINT nType, int cx, int cy) 消息函数中添加:

  if(nType!=SIZE_MINIMIZED )//注意这个必须要有,否则最小化后再最大化就会有问题
  {
    if(para1.GetSafeHwnd() && para2.GetSafeHwnd())//假设这里有2个子对话框
{
 CRect rc;
          m_maingroup.GetClientRect(

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值