ntjm.net
当前位置:首页 >> MFC如何使控件大小随着对话框大小自动调整 >>

MFC如何使控件大小随着对话框大小自动调整

1、在对话框类中加入成员变量CRect m_rect;用于保存对话框大小变化前的大小;2、在对话框的OnInitDialog()函数中获取对话框创建时的大小: GetClientRect(&m_rect);3、在WM_SIZE的响应函数OnSize()中加入以下代码: CWnd *

使用vc自带工具spy++抓一下不接就知道了. 最后松开鼠标的时候产生了十多个消息. 其中可以发现wm_exitsizemove最符合你的要求

在onsize消息函数中,使用movewindow函数对控件大小进行处理.

增加wm_size消息,再增加相应代码,其中OnSize()函数中参数point就是坐标

自己处理WM_SIZE消息,根据窗口大小调整控件位置.

图片随着对话框放大,只能使用图像放缩了,这个会产生一定的失真.方法其实很简单,涉及两个方面:1. 将所有图片显示代码中,使用bitblt改为 stretchblt(需要调整两个参数,见2)2. stretchblt放缩显示,有两个新参数,就是目标区域大小,这个就需要你根据实际情况进行坐标运算了,或者是控件计算好的比例,或者是控件放缩后的大小(因为你控件是需要计算的,因此这个坐标宽高应该是现成的).总之,就是在现有代码基础上,将位图点阵拷贝改成通过坐标计算后的放缩拷贝,多数代码应该在onpaint里面吧.

这个是需要你去自己取窗口的大小,然后去响应窗口改变事件处理的

响应 对话框OnSize 消息.在这里 做控件的 操作 类似: setpos move 等等..计算 改变大小

mfc 窗口大小变化时让窗口内部控件也一起随比例改变位置:void CXTest2Dlg::OnSize(UINT nType, int cx, int cy){CDialog::OnSize(nType, cx, cy);// TODO: 在此处添加消息处理程序代码//将窗口移动到合适位置和大小CRect rc,rc0,rc1;GetClientRect

最简单的情况:当我们点击最大化按钮的时候,对话框会最大化,但是控件“确定”和“取消”不会跟着变大.如果我们在对话框上面有多少控件,那么会很丑,而且很不实用,最大化本来就是想看的更清楚嘛.我们可以采取下面的措施:对话

bycj.net | rtmj.net | wlbx.net | eonnetwork.net | 4585.net | 网站首页 | 网站地图
All rights reserved Powered by www.ntjm.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com