SDI单文档中动态的批改客户区的大小

SDI单文档中动态的修改客户区的大小
本帖最后由 xxxwrq 于 2012-12-22 15:26:37 编辑
大神 求指点。SDI单文档中动态的修改客户区的大小    大概思路是什么?  例如  我点了最大化按钮后  view的内容应该与整个窗口大小等比例扩大。
求具体到那个类那个方法即可。关键字:等比例扩大,缩小. 

------解决方案--------------------
处理WM_SIZE消息对应OnSize函数

每次OnSize保存之前的cx和cy(长和宽)
最大化后会生成新的cx和cy的,然后与原来的对比形成一个系数。

视图内所有控件MoveWindow的时候入参数*这个系数
------解决方案--------------------
处理WM_SIZE消息

void C***View::OnSize(UINT nType, int cx, int cy) 
{
CFormView::OnSize(nType, cx, cy);

if (GetDlgItem(IDC_ST_RFT_MAN)->GetSafeHwnd())
{
GetDlgItem(IDC_ST_RFT_MAN)->MoveWindow(2, (cy-8)*3/5-4, 80, 12);
GetDlgItem(IDC_ST_SYS_LOG)->MoveWindow((cx-6)/2+6, (cy-8)*3/5-4, (cx-6)/2+10, 12);
GetDlgItem(IDC_LIST_RFT_MAN)->MoveWindow(2, (cy-8)*3/5+10, (cx-6)/2+2, (cy-8)*2/5-2);
GetDlgItem(IDC_LIST_SYS_LOG)->MoveWindow((cx-6)/2+6, (cy-8)*3/5+10, (cx-16)/2+10, (cy-8)*2/5-2);
}
}

------解决方案--------------------
引用:
处理WM_SIZE消息
C/C++ code?123456789101112void C***View::OnSize(UINT nType, int cx, int cy) {    CFormView::OnSize(nType, cx, cy);         if (GetDlgItem(IDC_ST_RFT_MAN)->GetSafeHwnd())    {……


OnSize一次就保存,X,Y进全局变量
再一次OnSize触发作对比形成系数