收藏 分享(赏)

界面自适应屏幕分辨率.docx

上传人:ysd1539 文档编号:12380894 上传时间:2021-12-11 格式:DOCX 页数:4 大小:18.04KB
下载 相关 举报
界面自适应屏幕分辨率.docx_第1页
第1页 / 共4页
界面自适应屏幕分辨率.docx_第2页
第2页 / 共4页
界面自适应屏幕分辨率.docx_第3页
第3页 / 共4页
界面自适应屏幕分辨率.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、 VC+控件自适应屏幕的方法 收藏 1.首先在初始化函数中,FormView 在 OnInitialUpdate(),Dialog在OnInitDialog()中初始化控件的大小。/开始初始化控件大小m_IsInitialed = false;CRect m_ClientRect;this-GetClientRect(CSize m_Forsize;m_Forsize = GetTotalSize();/在资源编辑器中定好大小后,程序运行时大小(不管最大化和最小化,该大小均为同一个值),客户区大于或等于显示的大小double m_x = (double)m_ClientRect.Width()

2、 / m_Forsize.cx;/宽度方向发大倍数double m_y = (double)m_ClientRect.Height() / m_Forsize.cy;/高度方向发大倍数/调整控件的大小CWnd *pWnd = NULL; pWnd = GetWindow(GW_CHILD);while(pWnd)/判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建CRect rect; /获取控件变化前大小pWnd-GetWindowRect(ScreenToClient(/将控件大小转换为在对话框中的区域坐标m_ControlRect.insert(pair(pWnd-GetDl

3、gCtrlID(), rect);/保存控件的初始大小,以便在 OnSize函数中继续使用int width = rect.Width();int height = rect.Height();WCHAR szBuf256;GetClassName(pWnd-m_hWnd,szBuf,256); if( _tcsicmp(szBuf,_T(“Edit“) = 0) /Edit只是位置变化,大小没有变rect.top = m_y * rect.top;rect.left = m_x * rect.left;rect.bottom = rect.top + height;rect.right =

4、rect.left + width;else/其它控件位置和大小均变化rect.top = m_y * rect.top;rect.left = m_x * rect.left;rect.bottom = m_y * rect.bottom;rect.right = m_x * rect.right;pWnd-MoveWindow(/设置控件大小pWnd = pWnd-GetWindow(GW_HWNDNEXT);/控件初始化结束m_IsInitialed = true;2.如果界面在运行时大小可以改变,则在 OnSize函数中加入如下代码/ TODO: 在此处添加消息处理程序代码CFormV

5、iew:ShowScrollBar(SB_BOTH, false);/设置没有滚动条,视情况而定。/在界面不是最小化并且已经初始化完毕if (!IsIconic() m_Forsize = GetTotalSize();double m_x = (double)cx / m_Forsize.cx;double m_y = (double)cy / m_Forsize.cy;/读取控件的初始大小map:iterator pos = m_ControlRect.begin();for (; pos != m_ControlRect.end(); +pos)CRect rect = pos-seco

6、nd;int width = rect.Width();int height = rect.Height();WCHAR szBuf256;GetClassName(GetDlgItem(pos-first)-m_hWnd,szBuf,256); if( _tcsicmp(szBuf,_T(“Edit“) = 0) rect.top = m_y * rect.top;rect.left = m_x * rect.left;rect.bottom = rect.top + height;rect.right = rect.left + width;elserect.top = m_y * rect.top;rect.left = m_x * rect.left;rect.bottom = m_y * rect.bottom;rect.right = m_x * rect.right;GetDlgItem(pos-first)-MoveWindow(rect);或在 OnShowWindow()函数中加入也可以(特别是在对话框作为 tabpage时)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 社会民生

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报