文章目录
窗口最大化
- 资源视图中开放最大化按钮,添加窗口样式
WS_MAXIMIZEBOX
。 - 发送大小改变消息
ON_WM_SIZE()
。 - 响应大小改变。
c
void CDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
//获取改变后窗口大小
CRect rcClient;
GetClientRect(&rcClient);
CRect rcBtn(0, 0, 0, 0);
if (NULL != GetDlgItem(IDBTN)) //判断控件是否存在,第一次OnSize的时候控件还未创建
{
//获取原始位置、大小
CRect rcOrigin;
GetDlgItem(IDBTN)->GetClientRect(rcOrigin);
//设置新位置、大小。根据改变后的窗口大小等计算新位置。
rcBtn.left = cx * 4 / 5 - nBtnWidth - 30;
rcBtn.top = cy - nBtnHeight - 10;
rcBtn.right = rcBtn.left + nBtnWidth;
rcBtn.bottom = rcBtn.top + nBtnHeight;
GetDlgItem(IDBTN)->MoveWindow(rcBtn);
}
}
库
EasySize控件自适应大小
实现MFC控件随界面自动拉伸。