mfc单元格坐标_【MFC】mfc控件位置调整和坐标确定 .

本文介绍了如何在MFC中使用GetSystemMetrics函数获取屏幕和窗体的分辨率及显示区域尺寸,包括不同索引值的含义,以及如何应用这些信息来调整控件的位置。
摘要由CSDN通过智能技术生成

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

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

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

int x, y;

x = GetSystemMetrics(SM_CXSCREEN); //屏幕宽度

y = GetSystemMetrics(SM_CYSCREEN); //屏幕高度

获取窗体显示区域大小

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

第一种方法:使用GetSystemMetrics函数

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

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的值则鼠标左右键交换,否则没有。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值