使控件和MFC窗口一起最大最小化
来源:互联网 发布:淘宝联盟自己买自己的 编辑:程序博客网 时间:2024/04/30 07:42
1.选中对话框,右键-》属性-》消息,添加WM_SIZE函数。
2.在对话框类头文件.h里面添加:
void ReSize();POINT old;
3.在初始化函数OnInitDialog()中添加;
GetClientRect(&m_rect);old.x = m_rect.right - m_rect.left;old.y = m_rect.bottom - m_rect.top;//ShowWindow(SW_SHOWMAXIMIZED);//初始化为最大窗口
4.Resize函数实现:
void Copencv_mfc_showDlg::ReSize(){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);//取得IDGetDlgItem(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]);Rect.SetRect(TLPoint, BRPoint);GetDlgItem(woc)->MoveWindow(Rect, TRUE);hwndChild = ::GetWindow(hwndChild, GW_HWNDNEXT);}old = Newp;}
5.在OnSize函数中添加如下代码:
if (nType == SIZE_RESTORED || nType == SIZE_MAXIMIZED){ReSize();}
最大最小化窗口时,控件就会随着改变大小了。
0 0
- 使控件和MFC窗口一起最大最小化
- MFC 托盘操作,最大最小化窗口
- 不随主窗口一起最小化
- 使MFC窗口的最大化和最小化按钮消失
- mfc窗口最大化和最小化处理
- MFC 静态文本框使用/更改button背景色/不使能button/设置标题/不显示控件/窗口最大最小化
- C++MFC程序窗口无法显示最大最小化按钮问题
- 客户端窗口最大最小化
- Sendmessage最大最小化窗口
- Fedora窗口最大最小化
- vc 窗口最大最小化
- 对话框窗口最大最小化
- MFC控件和对话框一起变小变大
- Javascript全屏窗口滚动条和最大最小化都没有
- MFC中将窗口最小化到系统托盘和还原
- Fedora 17 窗口最大最小化
- VC++ 实现 窗口最小化 MFC
- MFC窗口最小化到托盘
- std::string assign函数使用
- Effective Java 读书笔记
- 华为OJ——汽水瓶
- LADP
- iOS应用支持IPV6,就那点事儿
- 使控件和MFC窗口一起最大最小化
- 听韦东山老师公开课的理解
- web.xml详解
- Flume的体系结构介绍以及Flume入门案例(往HDFS上传数据)
- O(NlogN)复杂度选取出现次数超过一半的元素(递归版本)
- 华为OJ——删除字符串中出现次数最少的字符
- 268. Missing Number 找出缺失的数
- Vitamio视频播放器(一)
- css切图