MFC窗口位置和大小的获取
来源:互联网 发布:db2 oracle 数据同步 编辑:程序博客网 时间:2024/04/18 20:14
最近在做一个项目,需要控件随对话框大小的变化而变化,因此需要准确获取对话框窗口、控件的大小和位置。
经过好一番查寻、测试,终于看到了希望。下面是一些获取窗口位置和大小的函数,示例如下:
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(100,100,100,100);//更改控件大小并移动其到指定位置
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窗口位置和大小的获取
- Qt 获取窗口的位置和大小
- MFC 设置窗口的大小与位置
- 跨浏览器用javascript获取窗口的位置和大小
- 跨浏览器用javascript获取窗口的位置和大小
- qt中获取窗口位置和大小
- VC MFC 获取屏幕大小 程序窗口大小位置 控件大小位置
- Javascript获取窗口的大小及位置
- MFC获取窗口大小
- mfc 改变窗口位置大小
- mfc动态改变对话框窗口大小和显示位置
- mfc动态改变对话框窗口大小和显示位置
- MFC动态改变对话框窗口大小和显示位置
- mfc向导生成的 默认窗口大小和位置是如何设置的
- 精确控制MFC控件窗口的位置和大小(top|left|width|height)
- 改变浏览器窗口的大小和位置
- 记录窗口的位置和大小
- MFC窗口最大化&移动窗口位置&获取控件句柄,设置控件大小
- assets在前端开发项目中的含义是什么
- ios中单例模式运用
- 计算机会议级别分类
- 【原创】关于冰后回弹
- plsql developer中如何将序列的值重设为1.
- MFC窗口位置和大小的获取
- Android笔记(14)打开相机和图库并裁剪
- Gradle 代理设置
- 167. Two Sum II
- Spark on Yarn配置Trouble shooting
- Python3自定义函数
- 水平progressbar 带底部指示器和文字
- 【剑指Offer】面试题56:链表中环的入口结点
- POJ