MFCPrjDlg控件随对话框大小缩放VS2019
MFC 项目里控件不跟着窗口大小变?MFCPrjDlg
这个项目就专门这个老问题。用的是纯 MFC,没加BCGControlBar
之类的第三方库,干净清爽,适合初学和进阶。
项目的核心思路是重写OnSize()
,对话框一变化就立刻计算每个控件的新位置和大小,配合SetWindowPos()
一把梭,响应也快,代码也简单。
里面的布局逻辑蛮值得一看:可以按比例缩放、也可以固定边距,还可以参考其他控件定位。用AdjustControls()
封装一下,逻辑清晰多了。控件多了也不怕,优化一下遍历逻辑,性能也能扛得住。
要注意的是,别在OnSize()
里放太重的计算,是控件多的时候。还有,像FindWindowEx()
获取控件句柄配合GetDlgItem()
会比较方便,ID 管理也更清楚。
如果你做的是基于对话框的 MFC 项目,这个示例真的挺实用。下载包里带了完整工程,在VS2019
里直接跑,修改成本也不高。配合资源编辑器一调就好,缩放体验立马提升。
你也可以看看相关的几个资源,比如mfc 对话框及控件缩放,都是实战派内容。
下载地址
用户评论