MFC的List Control自适应主界面大小
响应WM_SIZE消息手动调整
实现步骤:
-
为对话框/窗口添加WM_SIZE消息处理:
-
在Class View中右键你的对话框类
-
选择"类向导" → "Messages" → 找到WM_SIZE
-
添加OnSize处理函数.
-
如图所示:
再代码中自动生成OnSize()函数;
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也会跟着缩放。