资源简介
自定义类CSelfResizeWindow实现窗口和控件的自适应调整,根据屏幕尺寸调整大小。实现的非常简单,而且通用性很好,对于控件和窗体都有好用,只要继承这个自定义类,并在你的对话框类的OnInitDialog()函数和OnSize()函数中各加入一行代码就全部OK啦!
代码片段和文件信息
#include “stdafx.h“
#include “SelfResizeWindow.h“
CSelfResizeWindow::CSelfResizeWindow(int wOff int hOff)
{
m_Dlg = NULL;
m_WidthOff = wOff; // 10
m_HeightOff = hOff;// 10
m_W = GetSystemMetrics(SM_CXSCREEN);
m_H = GetSystemMetrics(SM_CYSCREEN);
m_ChildWndList.clear();
}
CSelfResizeWindow::~CSelfResizeWindow()
{
m_Dlg = NULL;
m_ChildWndList.clear();
}
bool CSelfResizeWindow::Rectify()
{
if (m_Dlg == NULL){
return false;
}
RECT rct;
m_Dlg->GetClientRect(&rct);
int w = rct.right - rct.left;
int h = rct.bottom - rct.top;
double wTimes = w * 1.0 / m_W;
double hTimes = h * 1.0 / m_H;
map::iterator it = m_ChildWndList.begin();
while (it != m_ChildWndList.end())
{
CWnd* w = m_Dlg->GetDlgItem(it->first);
RECT rct = it->second;
rct.left *= wTimes;
rct.right *= wTimes;
rct.top *= hTimes;
rct.bottom *= hTimes;
if (w){
w->MoveWindow(&rct FALSE);
}
it++;
}
m_Dlg->Invalidate(TRUE);
return true;
}
bool CSelfResizeWindow::Init(CDialog*dlg int beginId int endId)
{
if (dlg == NULL){
return false;
}
m_Dlg = dlg;
m_ChildWndList.clear();
RECT parentRct;
m_Dlg->GetClientRect(&parentRct);
m_W = parentRct.right - parentRct.left;
m_H = parentRct.bottom - parentRct.top;
for (int i=beginId; i<=endId; i++){
CWnd* w = m_Dlg->GetDlgItem(i);
if (w){
RECT rct;
w->GetWindowRect(&rct);
m_Dlg->ScreenToClient(&rct);
m_ChildWndList.insert(make_pair(i rct));
}
}
return true;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 93184 2015-08-31 14:33 VC++窗口和控件自适应屏幕尺寸\SelfResizing\Release\SelfResizing.exe
文件 4942848 2015-08-31 14:33 VC++窗口和控件自适应屏幕尺寸\SelfResizing\Release\SelfResizing.pdb
文件 2827 2015-08-31 14:05 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\ReadMe.txt
文件 8480 2015-08-31 14:33 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\Release\BuildLog.htm
文件 67 2015-08-31 14:33 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\Release\mt.dep
文件 223005 2015-08-31 14:09 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\Release\SelfResizeWindow.obj
文件 851 2015-08-31 14:33 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\Release\SelfResizing.exe.intermediate.manifest
文件 150877 2015-08-31 14:15 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\Release\SelfResizing.obj
文件 38993920 2015-08-31 14:09 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\Release\SelfResizing.pch
文件 69684 2015-08-31 14:33 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\Release\SelfResizing.res
文件 168511 2015-08-31 14:33 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\Release\SelfResizingDlg.obj
文件 4550068 2015-08-31 14:09 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\Release\stdafx.obj
文件 1108992 2015-08-31 14:33 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\Release\vc90.idb
文件 3788800 2015-08-31 14:33 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\Release\vc90.pdb
文件 67777 2007-11-28 16:21 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\res\SelfResizing.ico
文件 368 2015-08-31 14:05 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\res\SelfResizing.rc2
文件 776 2015-08-31 14:10 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\resource.h
文件 1534 2015-08-31 14:09 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\SelfResizeWindow.cpp
文件 593 2015-08-31 14:07 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\SelfResizeWindow.h
文件 105668 2015-08-31 14:33 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\SelfResizing.aps
文件 1731 2015-08-31 14:05 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\SelfResizing.cpp
文件 481 2015-08-31 14:05 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\SelfResizing.h
文件 5349 2015-08-31 14:33 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\SelfResizing.rc
文件 5604 2015-08-31 14:09 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\SelfResizing.vcproj
文件 1427 2015-08-31 14:33 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\SelfResizing.vcproj.EFDD10259FB44A0.Administrator.user
文件 2567 2015-08-31 14:33 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\SelfResizingDlg.cpp
文件 538 2015-08-31 14:15 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\SelfResizingDlg.h
文件 145 2015-08-31 14:05 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\stdafx.cpp
文件 1854 2015-08-31 14:05 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\stdafx.h
文件 1030 2015-08-31 14:05 VC++窗口和控件自适应屏幕尺寸\SelfResizing\SelfResizing\targetver.h
............此处省略13个文件信息
- 上一篇:Imperfect C++完整光盘(分为5卷,卷5)
- 下一篇:MFC谷歌离线地图
相关资源
- 算法与数据结构课件及源代码
- VC++ 可视化计算器
- mfc 同步移动两个窗口
- MFC/VC++字符串与十六进制码之间互相转
- 课程信息VC操作Access数据库(实现增删
- VC 图片滚动窗体和无边框窗口
- VC++ 实现WIFI共享工具 源代码(无线承
- VC++ GDI+ gdiplus应用集
- 细胞统计识别系统
- devc++ 64位最新版本
- VC++基于socket传输文件服务端和客户端
- VC++6.0 WIN7 32位版
- USB HID STM32 开发资料全集
- vc++和sqlserver.rar
- 精通Visual C++图像处理编程第3版_周长
- Devc++ 5.11
- VC++ 深入详解
- VC++中为PIC空间添加滚动条显示大图片
- VC++6.0中文安装版
- VC++实现在线实时音频通信
- VC6.0直接可执行源码(音乐播放器,记
- c++自适应哈夫曼编码
- 基于MFC编程的冒泡排序动态演示
- 基于MFC的画直线,矩形,椭圆改变线
- 基于模糊的自适应阈值分割
- vc++直接控制excel程序打开
- MFC项目开发85个
- [VC.编程技术与难点剖析].辛长安.扫描
- 类似QQ的聊天程序 的客户端 + 服务器
- 计算器 3.0 源码 vs2008 MFC vc++
评论
共有 条评论