MFC控件随窗口大小变化,多次缩放不影响位置
代码改自:https://blog.csdn.net/u013280734/article/details/51355035
void CMyCefTestDlg::OnSize(UINT nType, int cx, int cy)
{
CDialogEx::OnSize(nType, cx, cy);
// TODO: 在此处添加消息处理程序代码
//最小化判断
if (nType == 1)
{
return;
}
else
{
CRect rect;//获取当前窗口的大小
for (std::list<control*>::iterator it = m_con_list.begin(); it != m_con_list.end();it++)
{
CWnd* pWnd = GetDlgItem((*it)->Id);//获取ID为woc的空间的句柄
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);//将控件大小转换为在对话框中的区域坐标
rect.left = (*it)->scale[0] * cx;
rect.right = (*it)->scale[1] * cx;
rect.top = (*it)->scale[2] * cy;
rect.bottom = (*it)->scale[3] * cy;
pWnd->MoveWindow(rect);//设置控件大小
}
}
GetClientRect(&m_rect);//将变化后的对话框大小设为旧大小
return;
}
//在初始化里面调用下面这个函数