【初级MFC】大小可变的对话框

本文记录了如何在MFC中创建一个大小可调的对话框,其中窗体仅允许高度拉伸,不允许宽度变化,并在高度变化时调整控件位置。通过设置对话框边框类型、定义私有变量、初始化及重写OnSize方法来实现这一功能。参考链接提供了详细步骤和代码示例。
摘要由CSDN通过智能技术生成

书到用时方恨少!
一直没有用VC做过什么开发,眼下遇上任何一件小事都得从头来过。下面就是一个例子,记下来留作参考。

【要求】
1.  窗体大小可调的特殊要求:不允许比原始窗体更小,而且宽度不允许拉伸,即只允许高度拉伸;
2.  窗体中有一个文本框还有两个按钮,高度变化后所属控件要进行相应的位置调整。


【实现手法】
1.  窗体设计。新建对话框的Border默认为Dialog Frame,需要修改为Resizing;
2.  在窗体类的头文件中增加两个私有变量;

	CSize m_OldSize;	//保存上一次窗体大小
	CRect m_rectOrigi;	//窗体的原始位置及大小

3.  变量初始化(构架函数中);

	//init
	m_rectOrigi = CRect(0, 0, 0, 0);
4.  获取窗体的初始大小(OnInitDialog中);

	GetWindowRect(&m_rectOrigi);
5.  指定窗体的WM_SIZE消息事件的处理属性为OnSize;

6.   OnSize方法代码;

void CTestDlg::OnSize(UINT nType, int cx, int cy)
{
	CDialog::OnSize(nType, cx, cy);

	if(
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值