1.点击对话框,在属性里:border改为resizing,可拉伸
Maximize Box 改为True
Minimize Box 改为True
Vertical Scrollbar改为 true,显示滚动条
titlebar改为false,题目消失
2.对话框全屏显示:
OnInitDialog()中,也就是初始显示状态是全屏
int cx,cy;
cx = GetSystemMetrics(SM_CXSCREEN);
cy = GetSystemMetrics(SM_CYSCREEN);
//再用MoveWindow
CRect rcTemp;
rcTemp.BottomRight() = CPoint(cx, cy);
rcTemp.TopLeft() = CPoint(0, 0);
MoveWindow(&rcTemp);
3.控件随对话框的大小而改变
添加OnSize,在类向导里。
添加:
if(m_sure.GetSafeHwnd())//m_sure为相应控件变量
m_sure.MoveWindow(0,0,cx,cy);
////按钮边界显示不出来,可能要给控件加了背景才可以。
4.控件随对话框的大小而改变,法2
1、在对话框类中加入成员变量CRect m_rect;用于保存对话框大小变化前的大小; 2、在对话框的OnInitDialog()函数中获取对话框创建时的大小:GetClientRect(&m_rect); 3、在WM_SIZE的响应函数OnSize()中加入以下代码: C/C++ code CWnd *pWnd; pWnd = GetDlgItem(IDC_LIST); //获取控件句柄 if(pWnd && nType!=1)//判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建 { CRect rect; //获取控件变化前大小 pWnd->GetWindowRect(&rect); ScreenToClient(&rect);//将控件大小转换为在对话框中的区域坐标 // cx/m_rect.Width()为对话框在横向的变化比例 rect.left=rect.left*cx/m_rect.Width();/////调整控件大小 rect.right=rect.right*cx/m_rect.Width(); rect.top=rect.top*cy/m_rect.Height(); rect.bottom=rect.bottom*cy/m_rect.Height(); pWnd->MoveWindow(rect);//设置控件大小 } GetClientRect(&m_rect);//将变化后的对话框大小设为旧大小
//////这长的代码只能改变一个控件,需改进。
时间: 2024-10-10 22:22:54