VS2013 MFC 对话框控件大小随窗口大小改变而改变
来源:互联网 发布:知乎live 免费 编辑:程序博客网 时间:2024/06/05 05:07
窗口大小改变后控件大小也随之改变
在对话框头文件中定义
头文件名称:项目名称Dlg.h
POINT Old;//存放对话框的宽和高。
对话框cpp中初始化
cpp文件名称:项目名称Dlg.cpp
在OnInitDialog()函数中添加
CRect rect;GetClientRect(&rect); //取客户区大小 Old.x = rect.right - rect.left;Old.y = rect.bottom - rect.top;
添加WM_SIZE消息
在类向导中为对话框类添加WM_SIZE消息,如图
然后编辑代码,在函数中添加以下代码
void C枪支编码识别Dlg::OnSize(UINT nType, int cx, int cy)
{
CDialogEx::OnSize(nType, cx, cy);
// TODO: 在此处添加消息处理程序代码if (nType == SIZE_RESTORED || nType == SIZE_MAXIMIZED)//窗体大小发生变动。处理程序{ float fsp[2]; POINT Newp; //获取现在对话框的大小 CRect recta; GetClientRect(&recta); //取客户区大小 Newp.x = recta.right - recta.left; Newp.y = recta.bottom - recta.top; fsp[0] = (float)Newp.x / Old.x; fsp[1] = (float)Newp.y / Old.y; CRect Rect; int woc; CPoint OldTLPoint, TLPoint; //左上角 CPoint OldBRPoint, BRPoint; //右下角 HWND hwndChild = ::GetWindow(m_hWnd, GW_CHILD); //列出所有控件 while (hwndChild) { woc = ::GetDlgCtrlID(hwndChild);//取得ID GetDlgItem(woc)->GetWindowRect(Rect); ScreenToClient(Rect); OldTLPoint = Rect.TopLeft(); TLPoint.x = long(OldTLPoint.x*fsp[0]); TLPoint.y = long(OldTLPoint.y*fsp[1]); OldBRPoint = Rect.BottomRight(); BRPoint.x = long(OldBRPoint.x *fsp[0]); BRPoint.y = long(OldBRPoint.y *fsp[1]); //高度不可读的控件(如:combBox),不要改变此值. Rect.SetRect(TLPoint, BRPoint); GetDlgItem(woc)->MoveWindow(Rect, TRUE); hwndChild = ::GetWindow(hwndChild, GW_HWNDNEXT); } Old = Newp;}
}
0 0
- VS2013 MFC 对话框控件大小随窗口大小改变而改变
- MFC 控件随窗口大小而改变
- MFC控件随对话框大小改变而改变
- MFC窗口控件随主窗口大小改变而伸缩
- MFC 控件随着对话框大小的改变而改变
- MFC 控件大小随窗体改变而改变大小
- MFC 控件大小随窗体改变而改变大小
- MFC 控件大小随窗体改变而改变大小
- MFC Dialog子窗口大小随父窗口而能改变,控件随窗口大小而改变
- 设置控件随窗口大小而改变
- 设置控件随窗口大小而改变
- 设置控件随窗口大小而改变
- C#窗口控件大小随窗口大小而改变
- 对话框控件随界面大小的改变而改变
- MFC控件大小随窗体改变而改变
- mfc 控件大小随窗体改变而改变
- MFC控件大小随窗体改变而改变 .
- MFC窗体所有控件大小随窗体改变而改变
- 比较Undefined 和 null
- python科学计算
- 求平方根的面试题
- Win7上的Unity环境搭建
- static关键字总结
- VS2013 MFC 对话框控件大小随窗口大小改变而改变
- 一些好用的Mac软件推荐
- Tensorflow创建和读取17flowers数据集
- 【caffe源码研究】番外篇:(2) 使用Visual Studio 看cu代码
- Android中的SQLite
- 深入理解Linux内核架构
- 递归与尾递归
- express 快速创建一个应用的骨架
- Java枚举类型的使用