MFC控件随着对话框等比例放大或缩小
来源:互联网 发布:用狗爹注册域名 编辑:程序博客网 时间:2024/05/20 19:45
转载来自:http://blog.csdn.net/csdn3436/article/details/41851731
1.首先在oninitdlg中 计算出当前对话框的大小与最大化后大小,注意要用float值,不然误差很大.
CRect rect;
::GetWindowRect(m_hWnd,rect);
ScreenToClient(rect);
m_nDlgWidth = rect.right - rect.left;
m_nDlgHeight = rect.bottom - rect.top;
//计算分辨率
m_nWidth = GetSystemMetrics(SM_CXSCREEN);
m_nHeight = GetSystemMetrics(SM_CYSCREEN);
//计算放大倍数
m_Multiple_width = float(m_nWidth)/float(m_nDlgWidth);
m_Mutiple_heith = float(m_nHeight)/float(m_nDlgHeight);
change_flag=TRUE;//这个是成员变量bool形,用来判断onsize执行时oninitdlg是否已经执行了
2. 右击对话框,打开类向导,选择: 消息----->WM-SIZE-------->OnSize, 然后双击OnSize 进入函数,把以下代码写进去:
if (change_flag)//如果确定oninitdlg已经调用完毕.
{
ReSize(IDC_STATIC1);
ReSize(IDC_TREE_ALARM);
ReSize(IDC_STATIC2);
ReSize(IDC_TREE_CAMERA);
ReSize(IDC_STATIC3);
ReSize(IDC_LIST_TYPE);
ReSize(IDOK);
ReSize(IDC_STATIC4);
ReSize(IDC_LIST_INFO);
//恢复放大倍数,并保存 (确保还原时候能够还原到原来的大小)
m_Multiple_width = float(1)/ m_Multiple_width ;
m_Mutiple_heith = float(1)/m_Mutiple_heith ;
}
3.刷新控件:根据比例计算控件缩放的大小,然后movewindow 到新矩形上
自己建一个函数 ReSize(int nID) 代码如下:
void EnviromentConfigDlg::ReSize(int nID)
{
CRect Rect;
GetDlgItem(nID)->GetWindowRect(Rect);
ScreenToClient(Rect);
//计算控件左上角点
CPoint OldTLPoint,TLPoint;
OldTLPoint = Rect.TopLeft();
TLPoint.x = long(OldTLPoint.x *m_Multiple_width);
TLPoint.y = long(OldTLPoint.y * m_Mutiple_heith );
//计算控件右下角点
CPoint OldBRPoint,BRPoint;
OldBRPoint = Rect.BottomRight();
BRPoint.x = long(OldBRPoint.x *m_Multiple_width);
BRPoint.y = long(OldBRPoint.y * m_Mutiple_heith );
//移动控件到新矩形
Rect.SetRect(TLPoint,BRPoint);
GetDlgItem(nID)->MoveWindow(Rect,TRUE);
}
OK 写完之后就完成了你想要的操作。
希望对大家有所帮助
- MFC控件随着对话框等比例放大或缩小
- MFC控件随着对话框等比例放大或缩小
- MFC基本对话框中,窗口最大化后,子控件也等比例放大!
- Solidworks如何等比例缩小放大模型
- MFC放大缩小界面,使控件跟着放大缩小
- 利用PHP实现图片等比例放大和缩小
- PS 在PS中如何等比例放大缩小图片
- 解决手机前段等比例放大缩小照片!!!
- jquery实现页面图片等比例放大缩小功能
- 【二】MFC对话框的等比例缩放
- java文件比例缩小放大
- //等比例缩小图片
- 图片等比例缩小
- ImageView等比例缩小
- bitmap等比例缩小
- 控件随着窗体放大
- 图片不变形,按照等比例缩小或扩大显示
- MFC对话框中的控件随着对话框大小变化而变化
- Java Web学习总结(31)——全站HTTPS化SSL免费证书使用
- mysql 数据类型 和 索引关系
- hibernate
- 基础篇:1)时代的发展与结构设计—3d与2d的设计变化(夸夸其谈中)
- 自己写的javaGUI记事本
- MFC控件随着对话框等比例放大或缩小
- 项目开发注意点(二)
- UVa 1586 Nolar Mass(习题3-2)
- IOS--错误集锦--reason: '*** -[NSURL initFileURLWithPath:]: nil string parameter'
- 大数据背景下的互联网金融应用领域
- oracle 存储函数,存储过程
- IT运维
- [BZOJ]2442:修剪草坪[DP+单调队列]
- React+Webpack快速上手指南