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窗口及组件大小设置相关推荐

  1. MFC窗口位置和大小的获取

    最近在做一个项目,需要控件随对话框大小的变化而变化,因此需要准确获取对话框窗口.控件的大小和位置. 经过好一番查寻.测试,终于看到了希望.下面是一些获取窗口位置和大小的函数,示例如下: 1.获取屏幕分 ...

  2. VSCode窗口全部字体大小缩放设置 - 快捷键

    VSCode窗口全部字体大小设置办法? 注意:这种修改是等比例修改,不影响之前代码的font-size统一与否. 如果,只是想单独修改代码编写区域的代码大小,可以查看文章:"VSCode字体 ...

  3. qt 设置ui窗口为固定大小_Qt 设置窗口居中显示和窗体大小

    设置窗口居中显示 方法一:在窗口(QWidget类及派生类)的构造函数中添加如下代码: #include //....... QDesktopWidget* desktop = QApplicatio ...

  4. vue按钮字体大小设置_用Vue模仿antd的样式造UI组件之button

    一.环境的配遇新是直朋能到置 1.新建一个遇新是直朋能到分览文件夹 mkdir eassyui 2.使用npm作为包管理新直能分支调二浏页器朋代说,工具 npm init -y 3件览客需和下于有快都 ...

  5. html%3ctd%3e文本自动换行,如何在表格中自动换行一列,并将表格大小设置为浏览器窗口...

    我有一个带有3个"组"的HTML表格,左侧,中间和右侧.如何在表格中自动换行一列,并将表格大小设置为浏览器窗口 +--------------------------------- ...

  6. Delphi TScrollBar 用于滚动窗口、组件内容

    滚动条组件(TScrollBar)此组件是一个Windows滚动条,用于滚动窗口.组件内容.许多控制有滚动条属性,它们把滚动条作为自己的一部分,对于没有完整滚动条的控制,TScrollBar组件提供了 ...

  7. opencv在mfc窗口显示图片

    mfc显示mat图片的两种方式 方式一:将opencv的窗口嵌入到mfc的窗口内 将opencv窗口与mfc窗口绑定之后就可以通过cv::imshow("video",img)显示 ...

  8. java flowlayout参数_【Java布局】FlowLayout布局时设定组件大小

    默认的JPanel中,采用的是FlowLayout布局 下面是api中的定义: JPanel(boolean isDoubleBuffered) 创建具有 FlowLayout 和指定缓冲策略的新 J ...

  9. java应用窗口大小_java 如何让程序窗口随屏幕大小改变 | 学步园

    这个问题一直困扰我很长时间了,虽然工作了一段时间,但感觉连这个问题都解决不好的话,实在对不起自己.今天我终于抽出时间,好好网上找了下资料,然后写了个简单的记事本程序,感觉是我想要的结果.所以在这里把程 ...

最新文章

  1. 使用 .NET 对事件进行编程
  2. Firebird数据库系统的开发团队
  3. python画椭圆-python绘制圆和椭圆
  4. springboot 定时器_基于SpringCloud?+?SpringBoot的 SaaS型微服务脚手架源码分享
  5. mysql里concat什么意思_mysql里concat函数和 ‘’|‘’ 符号一起用是表示什么?
  6. 分布式服务框架dubbo原理解析 转
  7. python asyncio和celery对比_如何将Celery与asyncio结合? - python
  8. C++ 0x 使用可变参数模板类 实现 C# 的委托机制
  9. android 网络编程面试题,Android面试题整理
  10. 旅程落幕!网易相册将停止运营 这里有你的回忆吗?
  11. Mysql优化(出自官方文档) - 第三篇
  12. c语言编程定义符号,C语言:条件编译及预定义符号知识详解
  13. STM32F030R8移植freeModbus协议栈
  14. 获取Android设备唯一标识(唯一序列号)
  15. 【JWT】JWT JWS JWE | 在线JWS解析工具
  16. 如何在供应链金融中防范风险?
  17. 大四狗:我的java历程(续)
  18. 那些曾让你哭过的事,总有一天会笑着说出来
  19. 选择电容要考虑哪些点?
  20. M1 macbook spicy和numpy版本不匹配

热门文章

  1. 【计算机网络】数据链路层 : CSMA/CA 协议 ( 载波监听多点接入 / 碰撞避免 协议 | CSMA/CA 协议工作原理 | CSMA/CD 协议 与 CSMA/CA 协议对比 )
  2. Flyway 数据库版本控制
  3. Android Studio 是谷歌基于IntelliJ IDEA开发的安卓开发工具,有点类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调
  4. 智能密集仓储自动化立体冷库 拥有WMS指令RGV小车的立体冷库
  5. C# TextBox换行功能实现
  6. 第十八章 CSP Session 管理 - 与 CSP.Session 的Sessions
  7. Linux系统sendmail发送邮件
  8. 从excel表格中批量给图片重命名
  9. 网红泡泡屋,是如何火爆餐饮、民宿及景区市场的?
  10. WPF - 界面美化 MahApps.Metro UI