VC控件自动布局方案
VC 的控件自动缩放方案,真挺省事。窗口尺寸一变,控件自己就跟着调整位置和大小,不用你手动一个个计算。用到的核心类是ClxDialog,继承自 MFC 的 CDialog
,加几行代码就搞定自动布局,适合非模态对话框的场景。
你只需要在自己的对话框头文件加上#include "lxDialog.h"
,把基类从CDialog
换成ClxDialog
。构造函数也跟着改一下,这样就能用上 ClxDialog 里的自动布局功能了,操作直观。
在OnInitDialog()
里加两行:ClxDialog::OnInitDialog()
和ClxDialog::ShowSizeIcon(TRUE)
,用一个数组像下面这样配置控件属性:
static DLGCTLINFO dcMenuGroup[] = {
{IDCANCEL, MOVEX, 100},
{IDCANCEL, MOVEY, 100},
{IDC_EDIT_RECDSPDLG, ELASTICX, 100},
{IDC_EDIT_RECDSPDLG, ELASTICY, 100},
};
SetControlProperty(dcMenuGroup, sizeof(dcMenuGroup)/sizeof(DLGCTLINFO));
这个数组里配置的是你想要自适应的控件,怎么动、动多少都可以控制。别忘了在OnSize()
里加上ClxDialog::OnSize(nType, cx, cy)
,否则不会生效。
,去资源管理器里把对话框的 Border 样式设成 Resizing,这样窗体才能拖动改变大小。整体流程不复杂,但功能确实挺实用,尤其在做弹窗比较多的项目时,能省不少事。
如果你平时用 VC 做工具类应用,或者窗口里控件比较多,这个方案可以让布局更灵活,也省掉多反复调整的麻烦。
56KB
文件大小:
评论区