MFC窗口及组件大小设置
MFC
一.桌面分辨率获取
1.获取桌面的大小,不包括状态栏
cxx = GetSystemMetrics(SM_CXFULLSCREEN);
cyy = GetSystemMetrics(SM_CYFULLSCREEN);
2.获取桌面的大小,包括状态栏 正真屏幕大小
cxx = GetSystemMetrics(SM_CXSCREEN);
cyy = GetSystemMetrics(SM_CYSCREEN);
二.软件各尺寸获取
1.获取软件的大小
CRect oWindowRect;
GetWindowRect( &oWindowRect );
2.获取客户区的大小(除去边框)
CRect oClientRect;
GetClientRect( &oClientRect );//获取客户区的大小
3.获取边框的大小
ULONG cx = oWindowRect.Width() - oClientRect.Width(); //窗口的宽 (边框)
ULONG cy = oWindowRect.Height() - oClientRect.Height(); //窗口的高(边框)
三.设置软件界面
1.MoveWindow函数
void MoveWindow(int x, int y, int nWidth, int nHeight, BOOL bRepaint = TRUE);
(x,y):设置窗口移动的位置,
(nWidth,nHeight):设置窗口的大小
- 使用方法1
GetDlgItem(IDC_BUTTON)->MoveWindow(0, 0, 100, 80);
- 使用方法2
定义控件的变量 m_btn
m_btn.MoveWindow(0, 0, 100, 80);
- 设置软件主界面的大小,在初始化函数OnInitDialog 添加如下代码
this->MoveWindow(0, 0, 100, 80);
2.SetWindowPos函数
SetWindowPos功能比较全,包含了MoveWindow的全部功能,设置组件和设置屏幕大小是一样的
- 使用方法1
GetDlgItem(IDC_BUTTON)->SetWindowPos(NULL, 0, 0, 100, 80, SWP_SHOWWINDW);
- 使用方法2
定义控件的变量 m_btn
m_btn.SetWindowPos(NULL, 0, 0, 100, 80, SWP_SHOWWINDW);
- 设置软件主界面的大小,在初始化函数OnInitDialog 添加如下代码
this->SetWindowPos(NULL, 0, 0, 100, 80, SWP_SHOWWINDW);
或者
SetWindowPos(&CWnd::wndTop, 0, 0, 100, 80, SWP_SHOWWINDW);
定位的标志
#define SWP_NOSIZE 0x0001 不改变尺寸(忽略cx,cy)#define SWP_NOMOVE 0x0002 不移动窗口位置(忽略x,y)#define SWP_NOZORDER 0x0004 维持当前Z序(忽略hWndlnsertAfter参数)#define SWP_NOREDRAW 0x0008 #define SWP_NOACTIVATE 0x0010#define SWP_FRAMECHANGED 0x0020 /* The frame changed: send WM_NCCALCSIZE */#define SWP_SHOWWINDOW 0x0040 显示窗口#define SWP_HIDEWINDOW 0x0080 隐藏窗口#define SWP_NOCOPYBITS 0x0100#define SWP_NOOWNERZORDER 0x0200 /* Don't do owner Z ordering */#define SWP_NOSENDCHANGING 0x0400 /* Don't send WM_WINDOWPOSCHANGING */#define SWP_DRAWFRAME SWP_FRAMECHANGED#define SWP_NOREPOSITION SWP_NOOWNERZORDER#define SWP_DEFERERASE 0x2000#define SWP_ASYNCWINDOWPOS 0x4000
- 如果窗口设置隐藏可以使用ShowWindow函数操作
m_btn.ShowWindow(TRUE)
或者
GetDlgItem(IDC_BUTTON)->ShowWindow(TRUE)
MFC窗口及组件大小设置相关推荐
- MFC窗口位置和大小的获取
最近在做一个项目,需要控件随对话框大小的变化而变化,因此需要准确获取对话框窗口.控件的大小和位置. 经过好一番查寻.测试,终于看到了希望.下面是一些获取窗口位置和大小的函数,示例如下: 1.获取屏幕分 ...
- VSCode窗口全部字体大小缩放设置 - 快捷键
VSCode窗口全部字体大小设置办法? 注意:这种修改是等比例修改,不影响之前代码的font-size统一与否. 如果,只是想单独修改代码编写区域的代码大小,可以查看文章:"VSCode字体 ...
- qt 设置ui窗口为固定大小_Qt 设置窗口居中显示和窗体大小
设置窗口居中显示 方法一:在窗口(QWidget类及派生类)的构造函数中添加如下代码: #include //....... QDesktopWidget* desktop = QApplicatio ...
- vue按钮字体大小设置_用Vue模仿antd的样式造UI组件之button
一.环境的配遇新是直朋能到置 1.新建一个遇新是直朋能到分览文件夹 mkdir eassyui 2.使用npm作为包管理新直能分支调二浏页器朋代说,工具 npm init -y 3件览客需和下于有快都 ...
- html%3ctd%3e文本自动换行,如何在表格中自动换行一列,并将表格大小设置为浏览器窗口...
我有一个带有3个"组"的HTML表格,左侧,中间和右侧.如何在表格中自动换行一列,并将表格大小设置为浏览器窗口 +--------------------------------- ...
- Delphi TScrollBar 用于滚动窗口、组件内容
滚动条组件(TScrollBar)此组件是一个Windows滚动条,用于滚动窗口.组件内容.许多控制有滚动条属性,它们把滚动条作为自己的一部分,对于没有完整滚动条的控制,TScrollBar组件提供了 ...
- opencv在mfc窗口显示图片
mfc显示mat图片的两种方式 方式一:将opencv的窗口嵌入到mfc的窗口内 将opencv窗口与mfc窗口绑定之后就可以通过cv::imshow("video",img)显示 ...
- java flowlayout参数_【Java布局】FlowLayout布局时设定组件大小
默认的JPanel中,采用的是FlowLayout布局 下面是api中的定义: JPanel(boolean isDoubleBuffered) 创建具有 FlowLayout 和指定缓冲策略的新 J ...
- java应用窗口大小_java 如何让程序窗口随屏幕大小改变 | 学步园
这个问题一直困扰我很长时间了,虽然工作了一段时间,但感觉连这个问题都解决不好的话,实在对不起自己.今天我终于抽出时间,好好网上找了下资料,然后写了个简单的记事本程序,感觉是我想要的结果.所以在这里把程 ...
最新文章
- Linux下进程间通信-------管道通信
- prometheus连续查询_Prometheus查询
- c语言不被O2优化,【图片】今天写几个性能测试,为什么C语言跑得这么慢呢??【c语言吧】_百度贴吧...
- Node — 第一天
- 停止使用p = 0.05
- LeetCode 1636. 按照频率将数组升序排序(哈希+排序)
- python字符数组输出_python字符串格式化输出
- 从SharePoint 2013迁移到SharePoint Online - 评估工具
- LINUX CENTOS 7 X86_64中开始菜单的编辑安装软件alacarte即可
- input 标签左对齐
- oracle8i数据库修复,用ORACLE8i修复数据库坏块的三种方法
- python异常捕获try except
- maven 配置tomcat 插件
- 小白玩IT记录之MySQL:Centos完全卸载MySQL
- 交通标志 | 中美两国警告标志异同分析
- chrome调试工具使用技巧汇总
- minecraft图标文件_如何在任何操作系统上查找Minecraft保存的游戏文件夹
- react-router嵌套路由页面无法显示
- 列出Excel所有sheet名称
- java String工具类/字符串工具类 StringUtil