mfc控件位置调整和坐标确定 .

2023-05-16

在mfc工程中控件或者窗口位置的调整是经常遇到的,特别是基于对话框的工程。位置的调整包括坐标、长度和宽度的变化,一般在窗口类的OnSize函数中实现。控件位置的调整涉及的函数有:GetWindowRect()、ScreenToClient()、GetClientRect()、MoveWindow()或SetWindowPos(),功能意义如下:

 

GetWindowRect():获得窗口在屏幕上的矩形坐标,调整控件位置时必须首先获得该屏幕坐标;

 

ScreenToClient():转换屏幕坐标到客户区坐标,如果为子窗口,转换后坐标为相对于父窗口的坐标,若为独立窗口,转换后客户区左上坐标为(0,0);调整子窗口时这一步也是必须的;

 

GetClientRect():获得窗口客户区坐标,左上坐标永远为(0,0);

 

MoveWindow():调整控件到指定位置;

 

SetWindowPos():调整控件的位置,该函数使用更灵活,多用于只修改控件位置而大小不变或只修改大小而位置不变的情况:

 

控件位置调整涉及的参变量有:主窗口的cx、cy坐标、参考点坐标。相对于调整位置时调用的函数,变量稍许复杂些。cx、cy坐标为主窗口的宽和高,有OnSize的参数给出,为窗口控件调整提供了变化的范围,所有的控件为了能够正常显示都不能超出这个范围。其实在开发过程中较难和重要的是参考控件的选择,其位置相对于主窗口来说必须好确定。常用的策略:

 

1.  选择主窗口上位置不随窗口大小变化的控件为参考;

 

2.  选择主窗口上控件的宽或者高固定的控件;

 

3.  选择与主窗口满足固定坐标关系的控件 ;

 

4.  选择主窗口上控件位置或者高宽容易确定的控件。

 

以上四种策略可在实际开发中作为参考!不管遇到什么的情况,一定要清楚:选择一个

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

MFC如何获取控件在对话框上的位置坐标

2010-09-13 20:20

本来希望的效果是在对话框上设置两个picture控件,分别显示两幅图像,然后将两幅图像中的相似部分利用一条直线连接起来。要实现这样的效果需要知道相似位置在这两幅图中的坐标以及这两个控件在对话框上的坐标,然后通过加减运算就可以得到图像上的相似区域在对话框的坐标,直接将这两个坐标用直线连接就可以了。                                                                                

为此,如何获得控件在对话框上的坐标是关键问题。编写了如下的测试小程序,目的是将两个picture控件中的点用直线连接起来,比较直观的是picture控件的四个角,所以程序中是将控件的拐角连接起来。首先在对话框上并排放置两个同样大小的picture控件,将他们的标识分别设成IDC_LEFT和IDC_RIGHT,然后添加两个编辑框用于显示picture控件的大小,给这两个编辑框添加相应的数据成员m_row和m_colume。添加一个按钮用于连接picture控件中的点,为这个按钮添加成员函数OnMatch() 。

void CControlDlg::OnMatch() 
{
// TODO: Add your control notification handler code here
CRect rectL,rectR;
GetDlgItem(IDC_LEFT)->GetWindowRect(&rectL);//获取控件相对于屏幕的位置
ScreenToClient(rectL);//转化为对话框上的相对位置
GetDlgItem(IDC_RIGHT)->GetWindowRect(&rectR);//获取控件相对于屏幕的位置
ScreenToClient(rectR);//转化为对话框上的相对位置
m_row=rectL.bottom-rectL.top;
m_colume=rectL.right-rectL.left;
UpdateData(FALSE);

CClientDC dc(this);
dc.MoveTo(rectL.left,rectL.top);
dc.LineTo(rectR.right,rectR.bottom);
dc.MoveTo(rectL.right,rectL.top);
dc.LineTo(rectR.left,rectR.bottom);

dc.MoveTo(rectL.left+m_colume/2,rectL.top+m_row/2);//连接两个控件中心点
dc.LineTo(rectR.left+m_colume/2,rectR.top+m_row/2);

}

 

MFC中,如何获得对话框控件相对于父窗口(对话框窗口)的位置

创建者: nottoobad

最后修改: 2010-11-29 21:07:54

状态: 公开

标签: mfc 

在MFC中,如何获得对话框控件相对于父窗口(对话框窗口)的位置:

CRect r;

pWnd->GetWindowRect(&r);

这样获得的r是控件相对于屏幕的坐标,然后用ScreenToClient(&r)就可以获得控件相对于父窗口的坐标。如果用GetClientRect(&r)的话,r.left和r.top始终是0,得到的并不是实际坐标。

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

以用GetSystemMetrics函数可以获取系统分辨率,但这只是其功能之一,GetSystemMetrics函数只有一个参数,称之为「索引」,这个索引有75个标识符,通过设置不同的标识符就可以获取系统分辨率、窗体显示区域的宽度和高度、滚动条的宽度和高度。

为了使使GetSystemMetrics的功能,我们以获取系统分辨率为例,并将其中的两个值用TextOut输出到窗体中。

第一步:用GetSystemMetrics获取屏幕的宽度和高度

  1. int x, y;
  2. x = GetSystemMetrics(SM_CXSCREEN); //屏幕宽度
  3. y = GetSystemMetrics(SM_CYSCREEN); //屏幕高度

获取窗体显示区域大小

已我现在的了解,获取窗体显示区域大小有三种方法。

第一种方法:使用GetSystemMetrics函数

  1. GetSystemMetrics(SM_CXFULLSCREEN); //获取最大化窗体的显示区域宽度
  2. GetSystemMetrics(SM_CYFULLSCREEN); //获取最大化窗体的显示区域高度

下面是GetSystemMetrics函数参数nIndex的定义:

 

SM_ARRANGE 返回是否预备最小化.
SM_CLEANBOOT 返回系统启动方式:
    0 正常启动
    1 安全模式启动
    2 网络安全模式启动
SM_CMOUSEBUTTONS 返回值为系统支持的鼠标键数,返回0,则系统中没有安装鼠标。
SM_CXBORDER,
SM_CYBORDER 返回以相素值为单位的Windows窗口边框的宽度和高度,如果Windows的为3D形态,则
等同于SM_CXEDGE参数
SM_CXCURSOR,
SM_CYCURSOR 返回以相素值为单位的标准光标的宽度和高度
SM_CXDLGFRAME,
SM_CYDLGFRAME 等同与SM_CXFIXEDFRAME and SM_CYFIXEDFRAME
SM_CXDOUBLECLK,
SM_CYDOUBLECLK 以相素值为单位的双击有效的矩形区域
SM_CXEDGE,SM_CYEDGE 以相素值为单位的3D边框的宽度和高度
SM_CXFIXEDFRAME,
SM_CYFIXEDFRAME 围绕具有标题但无法改变尺寸的窗口(通常是一些对话框)的边框的厚度
SM_CXFRAME,SM_CYFRAME 等同于SM_CXSIZEFRAME and SM_CYSIZEFRAME
SM_CXFULLSCREEN,
SM_CYFULLSCREEN 全屏幕窗口的窗口区域的宽度和高度
SM_CXHSCROLL,
SM_CYHSCROLL 水平滚动条的高度和水平滚动条上箭头的宽度
SM_CXHTHUMB 以相素为单位的水平滚动条上的滑动块宽度
SM_CXICON,SM_CYICON 系统缺省的图标的高度和宽度(一般为32*32)
SM_CXICONSPACING,
SM_CYICONSPACING 以大图标方式查看Item时图标之间的间距,这个距离总是大于等于
SM_CXICON and SM_CYICON.
SM_CXMAXIMIZED,
SM_CYMAXIMIZED 处于顶层的最大化窗口的缺省尺寸
SM_CXMAXTRACK,
SM_CYMAXTRACK 具有可改变尺寸边框和标题栏的窗口的缺省最大尺寸,如果窗口大于这个
尺寸,窗口是不可移动的。
SM_CXMENUCHECK,
SM_CYMENUCHECK 以相素为单位计算的菜单选中标记位图的尺寸
SM_CXMENUSIZE,
SM_CYMENUSIZE 以相素计算的菜单栏按钮的尺寸
SM_CXMIN,SM_CYMIN 窗口所能达到的最小尺寸
SM_CXMINIMIZED,
SM_CYMINIMIZED 正常的最小化窗口的尺寸
SM_CXMINTRACK,
SM_CYMINTRACK 最小跟踪距离,当使用者拖动窗口移动距离小于这个值,窗口不会移动。
SM_CXSCREEN,
SM_CYSCREEN 以相素为单位计算的屏幕尺寸。
SM_CXSIZE,SM_CYSIZE 以相素计算的标题栏按钮的尺寸
SM_CXSIZEFRAME,
SM_CYSIZEFRAME 围绕可改变大小的窗口的边框的厚度
SM_CXSMICON,
SM_CYSMICON 以相素计算的小图标的尺寸,小图标一般出现在窗口标题栏上。
M_CXVSCROLL,
SM_CYVSCROLL 以相素计算的垂直滚动条的宽度和垂直滚动条上箭头的高度
SM_CYCAPTION 以相素计算的普通窗口标题的高度
SM_CYMENU 以相素计算的单个菜单条的高度
SM_CYSMCAPTION 以相素计算的窗口小标题栏的高度
SM_CYVTHUMB 以相素计算的垂直滚动条中滚动块的高度
SM_DBCSENABLED 如果为TRUE或不为0的值表明系统安装了双字节版本的USER.EXE,为FALSE或0则不是。
SM_DEBUG 如果为TRUE或不为0的值表明系统安装了debug版本的USER.EXE,为FALSE或0则不是。
SM_MENUDROPALIGNMENT 如果为TRUE或不为0的值下拉菜单是右对齐的否则是左对齐的。
SM_MOUSEPRESENT 如果为TRUE或不为0的值则安装了鼠标,否则没有安装。
SM_MOUSEWHEELPRESENT 如果为TRUE或不为0的值则安装了滚轮鼠标,否则没有安装。(Windows NT only)
SM_SWAPBUTTON 如果为TRUE或不为0的值则鼠标左右键交换,否则没有。

 

 

Invalidate(TRUE)的闪屏问题

 (2010-05-03 02:58:24)

转载▼

标签:  

杂谈

分类: MFC小游戏

    在使用Invalidate(TRUE)进行窗口重绘时,总是会遇到闪屏的问题。

    一开始以为是绘图速度过慢照成的,但在对绘图时间做了一个测试之后发现,即使整个绘图过程只持续了几个毫秒,还是会看见很明显的闪烁,所以时间并不是造成闪烁的决定性因素

    那到底是什么原因呢?现在来看看Invalidate(TRUE)都干了些什么。其实,它只是间接向消息队列添加了WM_ERASEBKGND和WM_PAINT两个消息。但是,如果使用Invalidate(FALSE)的话,则只有WM_PAINT消息产生,这时是不会有任何闪烁的。

    现在看来,闪烁似乎是由WM_ERASEBKGND消息产生的,事实上,的确与它有关。那WM_ERASEBKGND有干了什么呢?WM_ERASEBKGND消息由OnEraseBkgnd()消息处理函数响应,它的作用就是重绘客户区背景。我们可以通过向工程里添加WM_ERASEBKGND这个消息,然后在重写的消息处理函数中将返回语句修改为return TRUE来屏蔽这一功能,这样做的好处是这时不会重绘背景了,坏处是这时背景也不会被擦出来。

    好像还没有说到真实原因,其实真正的原因就隐含在其中。现在来做一个实验,分别尝试一下快速的眨眼和慢速的眨眼,你会发现快速眨眼时我们会感觉眼前的黑色一闪而过,而慢速眨眼时,则会觉得整个过程是连续的,没有什么异样。其实闪烁也就是这么回事,即多张不连续图像的快速切换。这里有三个条件,多张和快速和不连续,而且需要同时具备才会发生闪烁。如果只是两张,只会感觉到突变,还谈不上闪烁;如果频率慢的话,也相当于两张图像的情况了;最后如果是连续图像的话,那就像是看电影,平稳的过渡也不会让人觉得不适。

    知道了这些,接下来就可以做决策了。

    解决方案

    使用Invalidate(FALSE),添加WM_ERASEBKGND消息处理函数或者局部刷新三者选其一,都是可以解决问题的。它们的都是通过除去图像不连续这一因素来达到目的的。

 

    另外,要说的是GDI的BitBlt()函数是及其高效的,一次操作所需要的时间只有几到十几个微秒,所以我们可以放心的使用它,而不用担心任何效率问题。不过相对于BitBlt()来说StretchBlt()就要慢的多,大概是几十倍的差别。

    还有就是一般的绘图工作都是先绘制在一个缓冲区上,然后再一次拷贝到屏幕上。

    有时,当我们需要利用闪烁的效果的话,也是可以通过多张图像的快速切换来做到,在这里我们也将两张图像的重复切换理解为多张图像。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mfc控件位置调整和坐标确定 . 的相关文章

  • 直观理解深度学习卷积部分

    转载自https www leiphone com news 201807 RQ4sBWYqLkGV4ZAW html 有删节 嵌牛导读 xff1a 在本文中 xff0c 我们将逐步分解卷积操作的原理 xff0c 将他与标准的全连接网络联系
  • 边缘检测(5)Canny算法

    边缘检测 1 Sobel 2 Laplace 3 Roberts 4 Canny Canny canny对边缘检测质量进行分析时 xff0c 有3个原则 xff1a 1 信噪比准则 2 定位精度准则 3 单边缘响应准则 canny边缘检测的
  • C++ OpenCV 图像转换,识别图像轮廓,画矩形

    1 include 34 ReadIDCard h 34 include 34 stdafx h 34 include lt iostream gt include lt stdio h gt include lt opencv2 open
  • 一阶导数概念

    定义 一般定义 设有定义域和取值都在实数域中的函数y 61 f x 若f x 在点 的某个邻域内有定义 xff0c 则当自变量x在x0处取得增量 xff08 点 仍在该邻域内 xff09 时 xff0c 相应地y取得增量 xff1b 如果
  • 使用Opencv进行轮廓检测,字符提取,简单的直方图字符识别!

    一 使用Opencv进行轮廓检测 xff01 所需函数 xff1a 1 cvFindContours 函数功能 xff1a 从二值图像中检索轮廓 xff0c 并返回检测到的轮廓的个数 函数原型 xff1a int cvFindContour
  • [Tesseract]Tesseract 在 Visual Studio 2012 中的配置及调用

    一 Tesseract简介 Tesseract是一个开源的OCR xff08 Optical Character Recognition xff0c 光学字符识别 xff09 引擎 xff0c 可以识别多种格式的图像文件并将其转换成文本 x
  • 解决win7 Windows USB无法驱动/驱动错误/该设备无法启动。(代码10)

    电脑一周没有重起 xff0c 今早一重起USB全都认不到 xff0c 开始以为是硬件接触不良 xff0c 后来重装驱动 xff0c 重装驱动后可以正常使用可重起后又无法使用 xff0c 在看了winodws日志 xff0c 发现有很多 xf
  • OpenCV3.2+VS2013+Tesseract3.02.02配置

    分享一下Tesseract3 02 02版本在Windows下的配置 我的环境VS2013 43 win8 64bit 43 OpenCV3 2 需要下载 xff1a tesseract orc setup 3 02 02 exe和tess
  • VS2010调用tesseract步骤

    我的tesseract安装路径为D Tesseract OCR xff0c 如果你的安装路径和我不一样 xff0c 将这份文档里所有的D Tesseract OCR改为你的安装路径即可 1 下载lib和dll xff08 所有需要下载的东西
  • Opencv获取身份证号码区域

    记得应该是16年的时候 xff0c 从一个公开课看到了关于OCR方面的内容 xff0c 里面讲到了通过OpenCV对身份证号码区域的剪裁以及使用Tess Two进行文字识别 xff0c 实现了对身份证号码的识别功能 断断续续看了点关于Ope
  • .NET(C#):使用SmtpClient发送带有图片和附件的电子邮件

    第一次使用这种方式发邮件呵呵 xff0c 就比如拿我的Live邮箱往QQ邮箱上发一封邮件 使用SmtpClient发送邮件的步骤就不讲了 xff0c 在网上你可以找到太多的资料了 xff0c 这里说一些需要注意的地方 xff1a 如果邮件的
  • C# 图片识别技术(支持21种语言,提取图片中的文字)

    C 图片识别技术 xff08 支持21种语言 xff0c 提取图片中的文字 xff09 图片识别的技术到几天已经很成熟了 xff0c 只是相关的资料很少 xff0c 为了方便在此汇总一下 xff08 C 实现 xff09 xff0c 方便需
  • C++调用Asprise OCR识别图片

    在一个识别软件中发现了Asprise OCR的 身影 xff0c 上官网查了一下相关信息 xff0c 发现功能挺强大的 xff0c 识别印刷体应该不错 xff0c 遗憾的是好像不能识别中文 xff0c 不过不知道它对扭曲后的英文识别能力怎么
  • MFC中的控件是怎么实现的呢?一个按钮就是一个窗口?还是所有按钮画在一个分层窗口上再叠

    请教一下MFC中的控件是怎么实现的呢 xff08 通过调用什么样的API xff0c 传递什么参数 xff09 xff1f 一个按钮就是一个窗口 xff1f 还是所有按钮画在一个分层窗口上再叠在主窗口上 xff1f 还是直接在主窗口上画图
  • VC实现自定义控件步骤

    一 控件的最小实现 1 1 添加MFC类CMyCtrl 添加MFC类CMyCtrl 继承CWnd 用向导添加 自己手动写代码都可以 1 2 添加CMyCtrl RegisterWindowClass函数 添加和实现CMyCtrl Regis
  • [翻译]VC++中创建并使用自定义控件

    原文地址 介绍 您好 xff01 这是我在CodeProject上的第四篇文章 迁移到VC 43 43 xff0c 我第一个关注的是通过VC 43 43 帮助能够创建自定义控件 xff0c 因为这是一个非常用有的特性 xff0c 当你要修改
  • MFC概念问题

    CDlgFloSetup dlgFloSetup dlgFloSetup SetCurSample GetCurSamples dlgFloSetup set select infos floInfos if IDOK 61 61 dlgF
  • 1-13 Docker实战案例

    目录 1 通过DockerFile生成Image 1 创建一个Spring Boot项目 2 编写测试Controller 3 项目打包 4 项目上传服务器 5 编写Dockerfile文件 6 基于Dockerfile构建镜像 7 基于i
  • error LNK2026: 模块对于 SAFESEH 映像是不安全的

    在使用VS2015编译工程时 xff0c 提示错误 xff1a 34 error LNK2026 模块对于 SAFESEH 映像是不安全的 34 解决方法 xff1a 1 打开该项目的 属性页 对话框 2 单击 链接器 文件夹 3 单击 命
  • Visual Studio 2013 出现错误 error RC2108: expected numerical dialog constant

    今晚突然发现 对话框贴上去的图片由于电脑分辨率不同 xff0c 显示也不一样 的bug 然后快马加鞭使用Picture Control 但是出现了这样的错误 xff1a 在 CONTROL IDB BITMAP2 IDC STATIC 7

随机推荐

  • MFC动态按钮的创建及其消息响应 和 自定义消息

    原文链接 http www cnblogs com gaohongchen01 p 4046525 html 动态按钮 多个 的创建 xff1a 1 在类中声明并定义按钮控件的ID define IDC D BTN 10000 2 在类的O
  • MFC中动态创建button及添加响应事件

    MFC中动态创建button及添加响应的事件 xff0c 主要步骤如下 xff1a 1 在头文件 xff08 Dlg h xff09 中添加一个CButton类型 xff0c 例如 xff1a CButton btn 2 在 xff08 D
  • MFC SendMessage()函数传递字符串

    CString cstr1 61 T 34 123 34 CString cstr2 61 T 34 hello 34 SendMessage hWnd WM XXX WPARAM LPCTSTR cstr1 LPARAM LPCTSTR
  • C++MFC编程笔记day01 MFC介绍、创建MFC程序和重写消息处理

    一 MFC概念和作用 1 全称Microsoft Foundation Class Library 我们称为微软基础类库 封闭了绝大部分的win32 Api函数 xff0c C 43 43 语法中的数据结构 xff0c 程序的执行流程 MF
  • MFC中的消息处理函数

    1 在Windows API编程中 xff0c 直接在消息处理函数中编写WM PAINT处理代码 2 在MFC中 xff0c CFrameWnd的消息处理过程在哪里呢 xff1f MFC时如何将消息处理函数和窗口关联起来的 在CFrameW
  • MFC添加自定义消息及处理函数

    添加消息 在头文件中添加 xff1a define WM MYMSG WM USER 43 1 WM USER以下的消息都是系统消息 xff0c 所以自定义消息时 xff0c ID要比WM USE大 xff1b 添加函数声明 xff08 用
  • MFC自定义消息的实现方法

    一 概述 xff1a 消息机制是windows程序的典型运行机制 xff0c 在MFC中有很多已经封装好了的消息 xff0c 如WM BTN 等 但是在有些特殊情况下我们需要自定义一些消息去完成一些我们所需要的功能 xff0c 这时候MFC
  • MFC窗体对象概念

    MFC框架中 xff0c 所有Cwnd的派生类都是窗口类型 xff0c 包括了Cview xff0c CframWnd xff0c Cdialog xff0c Cbutton Clist等控件等 xff0c 它们都经历了窗口类的注册 xff
  • Ubuntu搭建samba服务器教程

    什么是 Samba 安装 Samba 创建samba共享文件夹的两种方式Anonymous 和 Secured 创建一个 Anonymous share 创建一个 Secured share Ubuntu环境下测试 Samba配置文件说明
  • MFC的来龙去脉-----消息处理,找处理函数

    一 处理函数的源头 对于对话框程序 xff0c 无论是模式还是非模式 xff0c 在注册窗口的时候 xff0c 会指定其窗口过程处理函数WinProc xff1b 当消息找到了对应的窗口 xff0c DispatchMessage便开始让内
  • MFC一一添加WM_USER自定义消息

    有些时候 xff0c 我们希望自定义一些消息响应函数来控制何时进行消息触发 xff0c 或针对两个不同类或线程之间进行消息互动 xff0c 这个时候自定义消息响应函数就起到很大作用了 那么如何添加自定义消息呢 xff1f 具体分为以下几步
  • MFC 类库结构 总结

    MFC主要类库结构总结 MFC类主要分为应用程序结构类 窗口支持类 图书设备类 模版集合类 简单数据类型类以及全局AFX函数等6个类 1 应用程序结构类 应用程序结构类代表的是应用程序的基本元素 xff0c 主要包括了CcmdTarget类
  • MFC基本框架结构

    本文将剖析基于MFC的框架程序 xff0c 探讨MFC框架程序的内部组织结构 xff0c MFC是微软为了简化程序员的开发工作而设计的一套c 43 43 类集合 xff0c 利用这些类有 效地帮助程序员完成windows应用程序开发 代码结
  • mfc编程消息机制中消息汇总

    做VC开发必须熟悉消息机制 xff0c 笔试面试重点 xff0c 自己在这方面很欠缺 xff0c 搜集学习一下 WM CREATE CreateWindow 初始化工作 GetMessage 遇到WM QUIT 程序结束 DispatchM
  • c++中SetEvent和ResetEvent的使用

    关于事件 事件 Event 是WIN32提供的最灵活的线程间同步方式 xff0c 事件可以处于激发状态 signaled or true 或未激发状态 unsignal or false 根据状态变迁方式的不同 xff0c 事件可分为两类
  • MFC设置主界面背景图片、设置子窗体背景图片

    在Onpaint函数中加入如下代码 给窗口设置背景图片 CPaintDC dc this CRect myrect GetClientRect amp myrect CDC dcMem dcMem CreateCompatibleDC am
  • MFC——在视图窗口加载背景图片

    1 若是文档视图程序的话 xff0c 在视图类的OnDraw CDC pDC 函数中调用pDC gt TextOut 函数 xff0c 就像平常输出文字一样 若是嫌文字的背景颜色破坏了图像 xff0c 可以在输出文字之前调用pDC gt S
  • 如何修改MFC的图标

    更改IDR MainFrm指向的ico文件 xff0c 该图标有两种格式 xff0c 32 32和16 16 xff0c 这两种格式都要改 xff0c 还可以在主框架的OnCreate函数里指定使用哪个图标 xff1a HICON m hI
  • MFC改变控件位置和大小

    最近经常要用到改变控件在对话框上的位置和大小 xff0c 一直找不到有效的方法 xff0c 查看了很多资料 这篇博文还算靠谱 xff0c 转载到这里了 void CmyqeDlg OnSize UINT nType int cx int c
  • mfc控件位置调整和坐标确定 .

    在mfc工程中控件或者窗口位置的调整是经常遇到的 xff0c 特别是基于对话框的工程 位置的调整包括坐标 长度和宽度的变化 xff0c 一般在窗口类的OnSize函数中实现 控件位置的调整涉及的函数有 xff1a GetWindowRect