在基于对话框的mfc中(本来不是全屏的)点了最大化后,按钮 图片的位置都变了。怎么解决?

来源:百度知道 编辑:UC知道 时间:2024/06/01 00:23:48
如题

OnSize...具体的可以调整
void CtestDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);

// TODO: 在此处添加消息处理程序代码

static RECT LastWindowRect = {0, 0, 0, 0};//用来保存窗口上一次的大小
CWnd *hWin;//构造一个句柄
int ux = cx - LastWindowRect.right;

//求出窗口的水平变化量
int uy = cy - LastWindowRect.bottom;

//求出窗口的竖直变化量
if((hWin = GetDlgItem(IDC_PPP)) != NULL) //IDC_LIST1为控件的ID号
{
RECT rect;
hWin->GetWindowRect(&rect);//获得控件的大小
ScreenToClient(&rect);//设备到客户
rect.right += ux;//
rect.bottom += uy;
hWin->MoveWindow(&rect);//改变控件大小
}
LastWindowRect.right = cx;
LastWindowRect.bottom = cy;
}

那必须处理OnSize事件,当对话框带大小变化的时候,同时调整对话框上控件的位置
mfc里没有自动调整的功能