响应WM_SIZE消息手动调整
实现步骤:
-
为对话框/窗口添加WM_SIZE消息处理:
-
在Class View中右键你的对话框类
-
选择"类向导" → "Messages" → 找到WM_SIZE
-
添加OnSize处理函数.
-
如图所示:

再代码中自动生成OnSize()函数;
cpp
void CReadDataDlg::OnSize(UINT nType, int cx, int cy)
{
CDialogEx::OnSize(nType, cx, cy);
// TODO: 在此处添加消息处理程序代码
if (m_listCtrl.GetSafeHwnd()) // 确保List Control已创建
{
CRect rect;
GetClientRect(&rect); // 获取客户区大小
// 设置边距
rect.DeflateRect(20,(rect.bottom-rect.top)/5,20,(rect.bottom-rect.top)/5);
// 调整List Control大小和位置
m_listCtrl.MoveWindow(rect);
}
}
重新运行程序放大/缩小主界面,List Control也会跟着缩放。