資源簡介
MFC 窗口適應屏幕大小,控件適應窗口大小。最近遇到換了不同顯示器程序顯示不全的問題。
然后在網上找到了控件適應窗口的程序,奈何還是沒找到完全符合我要求的,于是還是自己來實現窗口自適應屏幕大小的功能吧。
我的最初想法是,我在oninit獲取屏幕大小,然后調用窗口顯示函數設置起點為0,0,窗口大小為屏幕長和寬,試了一下,可以,但不知道還有沒有更簡單方法或者有什么隱形bug。
代碼片段和文件信息
#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;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???88473600??2019-06-11?15:33??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\ipch\selfresizing-43d9adda\selfresizing-b7a7f49b.ipch
?????文件??????92160??2019-06-11?11:04??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\Release\SelfResizing.exe
?????文件????5876736??2019-06-11?11:04??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
?????文件???????3534??2019-06-11?11:03??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\cl.command.1.tlog
?????文件??????96436??2019-06-11?11:03??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\CL.read.1.tlog
?????文件???????2992??2019-06-11?11:03??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\CL.write.1.tlog
?????文件??????????2??2019-06-11?11:04??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\li
?????文件??????????2??2019-06-11?11:04??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\li
?????文件???????2220??2019-06-11?11:04??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\li
?????文件???????6086??2019-06-11?11:04??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\li
?????文件???????1462??2019-06-11?11:04??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\li
?????文件????????944??2019-06-11?11:04??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\mt.command.1.tlog
?????文件?????????67??2015-08-31?14:33??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\mt.dep
?????文件???????1124??2019-06-11?11:04??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\mt.read.1.tlog
?????文件????????570??2019-06-11?11:04??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\mt.write.1.tlog
?????文件????????692??2019-06-11?11:04??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\rc.command.1.tlog
?????文件???????3360??2019-06-11?11:04??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\rc.read.1.tlog
?????文件????????354??2019-06-11?11:04??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\rc.write.1.tlog
?????文件?????233293??2019-06-11?10:57??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\SelfResizeWindow.obj
?????文件????????381??2019-06-11?11:04??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\SelfResizing.exe.intermediate.manifest
?????文件????????106??2019-06-11?11:04??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\SelfResizing.lastbuildstate
?????文件???????2482??2019-06-11?11:04??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\SelfResizing.log
?????文件?????168257??2019-06-11?10:57??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\SelfResizing.obj
?????文件???30867456??2019-06-11?10:57??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\SelfResizing.pch
?????文件??????69684??2019-06-11?11:04??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\SelfResizing.res
?????文件????????713??2019-06-11?10:57??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\SelfResizing.vcxprojResolveAssemblyReference.cache
?????文件??????????0??2019-06-11?10:57??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\SelfResizing.write.1.tlog
?????文件?????183962??2019-06-11?11:03??VC++窗口和控件自適應屏幕尺寸改\SelfResizing\SelfResizing\Release\SelfResizingDlg.obj
............此處省略47個文件信息
- 上一篇:逐點比較法插補原理VC程序設計
- 下一篇:VC++6.0安裝包中文版
評論
共有 條評論