在哪里想获得了直接调用入校函数就可以了
CRect rc;
GetWindowRect(&rc);
rc.Width();获得宽度
rc.Height();获得高度
在你的对话类中响应WM_SIZE消息,系统将自动生成一个OnSize()函数,在该函数里面添加下面代码就可以得到:
void CDataFileImportDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
CRect rect;
GetClientRect(&rect);
}
rect 中就有你想要宽度,大小等信息。
[cpp] view plaincopy
void CMainFrame::OnChangeSize()
{
// TODO: Add your command handler code here
CRect cr;
GetClientRect(&cr);//获取对话框客户区域大小
ClientToScreen(&cr);//转换为荧幕坐标
int x= GetSystemMetrics(SM_CXSCREEN);//获取荧幕坐标的宽度,单位为像素
int y= GetSystemMetrics(SM_CYSCREEN);//获取荧幕坐标的高度,单位为像素
//MoveWindow((x-cr.Width() *2)/2 ,cr.top,cr.Width() *2,cr.Height() *2);//设置窗口显示的位置以及大小
MoveWindow(cr.left ,cr.top,cr.Width(),cr.Height()/2);//设置窗口显示的位置以及大小
}
[cpp] view plain copy
void CMainFrame::OnChangeSize()
{
// TODO: Add your command handler code here
CRect cr;
GetClientRect(&cr);//获取对话框客户区域大小
ClientToScreen(&cr);//转换为荧幕坐标
int x= GetSystemMetrics(SM_CXSCREEN);//获取荧幕坐标的宽度,单位为像素
int y= GetSystemMetrics(SM_CYSCREEN);//获取荧幕坐标的高度,单位为像素
//MoveWindow((x-cr.Width() *2)/2 ,cr.top,cr.Width() *2,cr.Height() *2);//设置窗口显示的位置以及大小
MoveWindow(cr.left ,cr.top,cr.Width(),cr.Height()/2);//设置窗口显示的位置以及大小
}
mfc动态改变对话框窗口大小和显示位置
C++代码
123456描述:mfc动态改变窗口大小和显示位置