如果是非模态对话框,在dlg->ShowWindow之后,调用dlg->MoveWindow就可以了。
如果是模态对话框,在对话框的OnInitDialog中,Get再MoveWindow。
CRect rect;
CWnd pWnd = GetDlgItem(IDC_picture);//IDC_picture为picture控件ID
pWnd->GetClientRect(&rc);//rc为控件的大小。
int x=rectHeight();
int y=rectWidth()。
1、在对话框类中加入成员变量CRect
m_rect;用于保存对话框大小变化前的大小;
2、在对话框的OnInitDialog()函数中获取对话框创建时的大小:
GetClientRect(&m_rect);
3、在WM_SIZE的响应函数OnSize()中加入以下代码:
CWnd
pWnd;
pWnd
=
GetDlgItem(IDC_LIST);
//获取控件句柄
if(pWnd)//判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建
{
CRect
rect;
//获取控件变化前大小
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);//将控件大小转换为在对话框中的区域坐标
//
cx/m_rectWidth()为对话框在横向的变化比例
rectleft=rectleftcx/m_rectWidth();/////调整控件大小
rectright=rectrightcx/m_rectWidth();
recttop=recttopcy/m_rectHeight();
rectbottom=rectbottomcy/m_rectHeight();
pWnd->MoveWindow(rect);//设置控件大小
}
GetClientRect(&m_rect);//将变化后的对话框大小设为旧大小
以上就是关于关于mfc对话框问题,我创建了一个对话框,想在对话框创建之后获取他的大小然后再缩小他的尺寸,改变对全部的内容,包括:关于mfc对话框问题,我创建了一个对话框,想在对话框创建之后获取他的大小然后再缩小他的尺寸,改变对、如何得到mfc中picture控件的长和宽、MFC的控件大小如何随对话框改变等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)