vc学习之窗口大小发生变更时使控件自动摆放到合适的位置

本文介绍如何在VC程序中响应窗口大小变化事件OnSize,通过使用GetSafeHwnd判断控件是否存在,结合CRect处理控件的位置和大小,确保窗口缩放时控件能自动摆放至合适的位置。代码示例中详细展示了如何调整多个不同类型的控件(如按钮、编辑框)的位置。
摘要由CSDN通过智能技术生成

1、不用说,首先隐射OnSize事件,然后在该事件中编写代码

2、这里要注意一个问题,那就是当窗口首次打开的时候,窗口上的空间事实上还没有创建,这个时候如果尝试移动控件位置将会出现错误,最常用的办法是使用GetSafeHwnd来判断控件窗口句柄是否存在,如果不存在就表示还没有创建,而且在窗口打开的时候只要判断一个就可以了

3、使用CRect 来处理控件的大小位置

 

我的代码处理:

// TODO: Add your message handler code here
 CRect rectClient;
 CRect rectEdit;
 int iButtonWidth,iButtonHeight;
 
 //光判断信息窗口是否已经创建
 if (IsWindow(GetDlgItem(IDC_EDIT_INFO)->GetSafeHwnd()))
 {  
  GetClientRect(&rectClient);
 
  //设置 启动按钮
  GetDlgItem(IDC_BUTTON_START)->GetClientRect(&rectEdit);
  iButtonWidth = rectEdit.Width();
  iButtonHeight = rectEdit.Height();
  rectEdit.top = rectClient.bottom - 10 - rectEdit.Height();
  rectEdit.bottom = rectClient.bottom - 10;
  rectEdit.right = 10 + rectEdit.Width();
  rectEdit.left = 10;
  GetDlgItem(IDC_BUTTON_START)-&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值