修改对话框尺寸后,保持其内的CComboBox和CEdit也同步尺寸

本文介绍了一种在调整对话框尺寸时,同步调整CComboBox和CEdit控件尺寸的方法。通过使用GetClientRect()函数和SetWindowPos()函数,可以确保控件的比例在窗口大小变化时保持不变。

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

修改对话框尺寸后,保持其内的CComboBox和CEdit也同步尺寸,开始使用的是GetWindowRect()函数得倒一个Rect,在使用MoveWindow()函数修改CComboBox和CEdit的尺寸,发现CComboBox的下拉列表比例明显失调,虽小后尺寸也和扩大前不同。因此,后来改用GetClientRect()函数和SetWindowPos()函数,发现这样的话,尺寸比例保持的非常完美。代码如下:

void CChap4ProcessInfoDlg::OnSize(UINT nType, int cx, int cy) 

{

	CDialog::OnSize(nType, cx, cy);

	

	// TODO: Add your message handler code here

	if(!IsWindowVisible())

		return;

	else {

		RECT rc_combobox;

		CComboBox*  pcbb = (CComboBox*)GetDlgItem(IDC_CBB);

		pcbb->GetClientRect(&rc_combobox);

		pcbb->SetWindowPos(NULL, 0, 0, cx, rc_combobox.bottom, SWP_NOZORDER);



		RECT rc_edit;

		CEdit* pe = (CEdit*)GetDlgItem(IDC_EDIT);

		pe->GetClientRect(&rc_edit);

		pe->SetWindowPos(NULL, 0, rc_combobox.bottom, cx, cy-rc_combobox.bottom, SWP_NOZORDER);

	}

	return;

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值