MFC窗口位置和大小的获取
最近在做一个项目,需要控件随对话框大小的变化而变化,因此需要准确获取对话框窗口、控件的大小和位置。
经过好一番查寻、测试,终于看到了希望。下面是一些获取窗口位置和大小的函数,示例如下:
1、获取屏幕分辨率
//下边两个函数获取的是显示屏幕的大小,但不包括任务栏等区域
int cx = GetSystemMetrics(SM_CXFULLSCREEN);
int cy = GetSystemMetrics(SM_CYFULLSCREEN);
//下边这两个函数获取的是真正屏幕的大小:屏幕分辨率
int nWidth=GetSystemMetrics(SM_CXSCREEN); //屏幕宽度
int nHeight=GetSystemMetrics(SM_CYSCREEN); //屏幕高度
CString strScreen;
strScreen.Format(L"%d,%d",nWidth,nHeight);
MessageBox(strScreen);
2、获取对话框窗体大小及其屏幕坐标
//对话框窗体大小及其屏幕坐标
CRect rectDlg;
//法1:
GetClientRect(rectDlg);//获得窗体的大小
//法2:
//GetWindowRect(rectDlg);//获得窗体在屏幕上的位置
//ScreenToClient(rectDlg);
CString strDlg;
strDlg.Format(L"%d,%d,%d,%d",rectDlg.left,rectDlg.top,rectDlg.Width(),rectDlg.Height());
MessageBox(strDlg);
3、获取控件大小和位置
//控件大小和位置
CRect rectCtrl;
CStatic *p=(CStatic*)GetDlgItem(IDC_STATIC_TEST);
p->MoveWindow(,,,);//更改控件大小并移动其到指定位置
p->GetWindowRect(rectCtrl);
this->ScreenToClient(rectCtrl);
//GetDlgItem(IDC_STATIC_TEST)->GetClientRect(rectCtrl);
CString str;
str.Format(L"%d,%d,%d,%d",rectCtrl.left,rectCtrl.top,rectCtrl.Width(),rectCtrl.Height());
MessageBox(str);
总结:
1、GetSystemMetrics() --> 用于得到被定义的系统数据或者系统配置信息;
2、GetClientRect() --> 得到客户区的位置和大小,一般用于获取窗口大小;
3、GetWindowRect() --> 得到窗口(对话框或控件)的屏幕坐标,一般用于获取对话框的屏幕坐标或和ScreenToClient()配合使用获取控件的客户区坐标;
4、ScreenToClient() --> 屏幕坐标转换为客户区坐标,一般和GetWindowRect()配合使用获取控件的客户区坐标;
MFC窗口位置和大小的获取的更多相关文章
- emacs之配置5,窗口位置和大小
emacsConfig/window-setting.el ;设置窗口位置 ( ) ;设置宽和高 () (if (eq system-type 'darwin) ()) (if (eq system- ...
- Selenium2学习-021-WebUI自动化实战实例-019-设置浏览器窗口位置大小
前文简略讲述了如何获取浏览器窗口的位置和大小,此文讲述如何通过 webdriver 设置浏览器窗口的位置和大小. 直接上码了...... /** * Set browser size for expe ...
- Javascript进阶篇——(DOM—节点---获取浏览器窗口可视区域大小+获取网页尺寸)—笔记整理
浏览器窗口可视区域大小获得浏览器窗口的尺寸(浏览器的视口,不包括工具栏和滚动条)的方法:一.对于IE9+.Chrome.Firefox.Opera 以及 Safari: • window.innerH ...
- C++ MFC 改变控件大小和位置
用CWnd类的函数MoveWindow()或SetWindowPos()可以改变控件的大小和位置. void MoveWindow(int x,int y,int nWidth,int nHeight ...
- Python3 Selenium WebDriver网页的前进、后退、刷新、最大化、获取窗口位置、设置窗口大小、获取页面title、获取网页源码、获取Url等基本操作
Python3 Selenium WebDriver网页的前进.后退.刷新.最大化.获取窗口位置.设置窗口大小.获取页面title.获取网页源码.获取Url等基本操作 通过selenium webdr ...
- Selenium WebDriver-网页的前进、后退、刷新、最大化、获取窗口位置、设置窗口大小、获取页面title、获取网页源码、获取Url等基本操作
通过selenium webdriver操作网页前进.后退.刷新.最大化.获取窗口位置.设置窗口大小.获取页面title.获取网页源码.获取Url等基本操作 from selenium import ...
- Android获取窗口可视区域大小: getWindowVisibleDisplayFrame()
getWindowVisibleDisplayFrame()方法 getWindowVisibleDisplayFrame()是View类下的一个方法,从方法的名字就可以看出,它是用来获取当前窗口可视 ...
- Selenium2学习-031-WebUI自动化实战实例-029-JavaScript 在 Selenium 自动化中的应用实例之四(获取元素位置和大小)
通过 JS 或 JQuery 获取到元素后,通过 offsetLeft.offsetTop.offsetWidth.offsetHeight 即可获得元素的位置和大小,非常的简单,直接上源码了,敬请参 ...
- 使用html元素的getBoundingClientRect来获取dom元素的时时位置和大小
使用: var section = $('.section'):这是jquery包装的dom元素,其他前端框架返回的可能也是一个包装元素, 我们需要获得的是里面的html的dom元素 然后:secti ...
随机推荐
- java-学习6
public class arryTest4 { //对整型数组按照由小到大的顺序进行排序 public static void main(String[] args) { int score[]= ...
- ROW_NUMBER() OVER(PARTITION BY ORDER BY )RN 只选一行
') ; SELECT DISTINCT PEGGED_SO_ID,PEGGED_SO_LINE_ID ,ITEM_ID ,QUANTITY ,LOCATION ,SITEID ,ROW_NUMBER ...
- 解题(StringTongPei--字符串匹配(动态规划))
题目描述 问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索.数据库.正则表达式等领域.现要求各位实现字符串通配符的算法.要求:实现如下2个通配符:*:匹配0个或以上的字符(字符由英文字母和 ...
- linux shell 学习笔记01
1.命令历史记录history !$ :调用上一条命令的执行结果 !100 :运行history记录里的第100条命令 !ser :调用以ser开头的最后一次执行的命令 ctrl+r ...
- python生成Excel图表(通过xlsxwriter)
前面介绍了pandas的简单用法,pandas的数据可以通过matlab第三方包将数据生成报表,但是我想将报表生成在Excel中,这时候就可以借助xlsxwriter第三方包来生成图标 缺点:xl ...
- Struts2学习资料
Struts2入门示例教程 http://blog.csdn.net/wwwgeyang777/article/details/19078545 Struts2工作原理 http://blog ...
- Jboss 数据源密码明文加密
转载:https://blog.csdn.net/iberr/article/details/40896479 备注:解密小程序没有测试,知识了解了加密解密过程.对自己的帮助是看懂了连接数据库的配置, ...
- centos7.2 +cloudstack 4.11 +KVM +ceph 安装配置(网卡带聚合)
系统安装,注意:管理节点版本是有要求的,配置为centos 7.2 最小安装版本(非最小化安装). 系统分区要求 /boot/efi 200MB / 100G /var 100G swap 0 其它给 ...
- Android 单元测试四大组件Activity,Service,Content Provider , Broadcast Receiver
先mark, 后补充 https://blog.csdn.net/stevenhu_223/article/details/14054313 https://www.jianshu.com/p/3aa ...
- Unity塔防游戏源码Warfront Defenders Playmaker Kit v1.7
Warfront Defenders Playmaker Kit, is a World War 2 based Tower Defense game project made using Huton ...