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

本文介绍如何在MFC应用程序中使控件位置随着窗体大小变化进行自动调整,核心是利用CRect对象记录窗体尺寸并相应更新控件坐标。
摘要由CSDN通过智能技术生成

      因为在做上位机,需要MFC中的控件位置随窗体大小而改变,以下是代码:

    首先初始化CRect m_rect,该成员变量用来记录窗体的当前大小。

void CTEST4View::OnSize(UINT nType, int cx, int cy)
{
	CFormView::OnSize(nType, cx, cy);
	CWnd *pWnd=NULL;
	this->GetWindowRect(&m_rect);//获取当前窗体的坐标
	 if(nType==1) return;//<span style="color: rgb(70, 70, 70); line-height: 26px;"><span style="font-family:SimSun;font-size:10px;">这一句必须添加,否则最小化恢复的时候会出错。</span></span>
	 pWnd = GetDlgItem(IDC_BUTTON1); //获取控件句柄
	 if(pWnd)   
	 {  
		 CRect rect;  //获取控件变化前的大小     
		 pWnd->GetWindowRect(&rect); //控件在窗口坐标系下的位置
		 ScreenToClient(&rect); //将窗口坐标系下的位置转换为控件坐标系下的位置
		 int cwidth =0;
		 int cheight = 0;
		 cwidth =rec
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值