前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >VC如何获取对话框中控件的坐标

VC如何获取对话框中控件的坐标

作者头像
_gongluck
发布于 2018-03-08 06:13:57
发布于 2018-03-08 06:13:57
2.6K00
代码可运行
举报
运行总次数:0
代码可运行

VC如何获取对话框中控件的坐标

GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置。

GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置,它的top和left都为0,right和botton是宽和高,因为这个矩阵是在客户区坐标系下(相对于窗口客户区的左上角)的。  

ClientToScreen把客户区坐标系下的RECT坐标转换为屏幕坐标系下的RECT坐标.

ScreenToClient把屏幕坐标系下的RECT坐标转换为客户区坐标系下的RECT坐标.     

我们对同一个窗口先GetWindowRect取得一个RECT,再用ScreenToClient转换到客户坐标系。然后GetClientRect取得一个RECT,再用ClientToScreen转换到屏幕坐标系。显然,GetWindowRect取得的矩阵不小于GetClientRect取得的矩阵。因为前者包含了非客户区,而后包括了客户区。

引自:http://blog.chinaunix.net/u/25372/showart_304363.html

所以要获得一个控件再对话框中的坐标的实现代码是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CRect lpRec; 
 GetDlgItem(IDC_SLIDER_output)->GetWindowRect(&lpRec); 
 ScreenToClient(&lpRec);

详细可看http://blog.pfan.cn/miaowei/39345.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年09月27日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
屏幕坐标与客户坐标的区别
屏幕坐标是相对于屏幕左上角(0,0)位置的坐标,客户坐标是相对于某个窗口客户区左上角的坐标,当谈到客户坐标时需要说明是相对哪个窗口的客户坐标。
gaigai
2019/09/29
2.2K0
屏幕坐标与客户坐标的区别
MFC对话框最大化时控件放大
初始化时用来猎取每个控件的位置和大小,写一个函数是在窗口大小改变时,根据原来获得的各控件大小和位置进行等比例放大和缩小即可 一。 在头文件添加    POINT Old;//存放对话框的宽和高。
立羽
2023/08/24
3660
轻松掌握屏幕坐标和窗口通信的实用技巧
友儿
2024/09/07
1121
轻松掌握屏幕坐标和窗口通信的实用技巧
vc中实现控件的隐藏与显示
一、隐藏控件             CWnd *pWnd;         pWnd = GetDlgItem(IDC_EDIT1);        //获取控件指针,IDC_EDIT1为控件ID号         pWnd->ShowWindow( SW_HIDE );      //隐藏控件 2、显示控件        CWnd *pWnd;        pWnd = GetDlgItem( IDC_EDIT1 );   //获取控件指针,IDC_EDIT为控件ID号        pW
_gongluck
2018/03/08
2.4K0
常用的user32API说明
整理了一下常用的user32API说明  还有软件Microsoft Spy++供大家下载  Spyv10.00.30319.rar using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; using System.Drawing; namespace WindowsFormsApplication1 { p
lpxxn
2018/01/31
4.3K0
2018最新mfc作为上位机接收硬件端USB或串口数据显示成图片 解决串口接收数据丢字节丢包问题
第一步:首先建立一个MFC工程,成功后会跳出一个对话框,直接在对话框上点击右键-》点击插入ACTIVAE控件-》选择MicrosoftCommunications Control, version 6.0
徐飞机
2018/08/30
3K0
2018最新mfc作为上位机接收硬件端USB或串口数据显示成图片   解决串口接收数据丢字节丢包问题
C++获取鼠标位置及全局检测鼠标行为
1、获取鼠标位置(在屏幕的位置)    CPoint m_mouse;       GetCursorPos(&m_mouse); 2、 屏幕转化为客户端(控件的相对位置)& 客户端位置转化为屏幕位置       ClientToScreen(this->m_hwnd,m_mouse);  //客户端位置转化为屏幕位置       ScreenToClient(this->m_hwnd,m_mouse) ;  //屏幕转化为客户端 3、获取控件关于在屏幕的位置    CRect  rc     GetWin
Gxjun
2018/03/26
3.9K0
Threejs入门之二十二:Threejs中的屏幕坐标转标准设备坐标
在上一节中,我们在监听鼠标移动事件时,将其坐标范围处理为了[-1,1]的范围,使用如下代码
九仞山
2023/04/30
2.4K0
Threejs入门之二十二:Threejs中的屏幕坐标转标准设备坐标
VC++6.0入门——第7讲 对话框编程(一)
好事文章地址:https://cloud.tencent.com/developer/article/2470499
Arya
2024/11/25
1970
VC++6.0入门——第7讲 对话框编程(一)
WPF 从裸 Win 32 的 WM_Pointer 消息获取触摸点绘制笔迹
本文将告诉大家如何在 WPF 里面,接收裸 Win 32 的 WM_Pointer 消息,从消息里面获取触摸点信息,使用触摸点信息绘制简单的笔迹
林德熙
2024/09/01
1600
WPF 从裸 Win 32 的 WM_Pointer 消息获取触摸点绘制笔迹
对话框伸缩功能的实现
对话框的伸缩功能是指当触发某一操作时只显示部分对话框的内容,再次触发时显示全部的对话框范围,就比如画图软件上的选择颜色对话框,我们可以使用系统预定义的颜色,也可以选择自定义颜色,当点击自定义的按钮时,对话框出现原先隐藏的另一边,让用户填写颜色的RGB值。 为了实现这个功能,我们需要记录两个矩形范围:全部对话框的大小和我们希望显示的部分对话框的大小,利用函数SetWindowPos来设置显示的对话框的大小,该函数的原型如下:
Masimaro
2018/08/31
6610
理解Unity3D中的四种坐标体系
2017-07-31 by Liuqingwen | Tags: Unity3D | Hits
IT自学不成才
2019/01/08
5.6K0
Android应用坐标系统全面详解
去年有很多人私信告诉我让说说自定义控件,其实通观网络上的很多博客都在讲各种自定义控件,但是大多数都是授之以鱼,却很少有较为系统性授之于渔的文章,同时由于自己也迟迟没有时间规划这一系列文章,最近想将这一系列文章重新提起来,所以就来先总结一下自定义控件的一个核心知识点——坐标系。
AWeiLoveAndroid
2018/09/03
1.4K0
Android应用坐标系统全面详解
MFC绘图小实验(1)
这学期开了一门计算机图形学的课程,感觉蛮有趣的,所以想把书上的那些样例程序都实现一遍,了解基本的绘图原理和要点。 1,使用用户自定义的映射模式,设置窗口大小和视区相等的二维坐标系。视区中x轴水平向右为正,y轴垂直向上为正,原点位于屏幕客户区中心。 void CTestoneView::OnDraw(CDC* pDC) { CTestoneDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for
Zoctopus
2018/06/04
1.7K0
使用鼠标
C语言Windows程序设计 -> 第十一天 -> 使用鼠标 鼠标的使用同样是通过获取Windows鼠标消息来获取用户当前的鼠标状态的。 一、鼠标的介绍     鼠标是计算机的输入设备之一, 在图形化的操作系统上, 鼠标的使用使一些复杂的操作变得简单, 随着科技的进步, 鼠标的种类也越来越多, 按接口类型可分为串行鼠标、PS/2鼠标、总线鼠标、USB鼠标(多为光电鼠标)四种。按其工作原理及其内部结构的不同可以分为机械式,光机式和光电式。     这里我们不讨论鼠标的硬件构造, 更多关于鼠标的硬
猿人谷
2018/01/17
2.7K0
使用鼠标
Unity基础(10)-坐标系统
3D坐标系是3D游戏开发与VR开发中的基础概念。一般而言3D坐标系都是使用的 笛卡尔坐标系来描述物体的坐标信息,笛卡尔坐标系:分为左手坐标系与右手坐标系
孙寅
2020/06/02
5K0
PyQt5-屏幕坐标系的了解和基本使用
虫无涯
2023/11/04
4210
WPF 已知问题 开启 WM_Pointer 消息之后 获取副屏触摸数据坐标偏移
本文记录 WPF 触摸的一个已知问题,仅在开启 WM_Pointer 消息之后,将应用程序运行在包含多个屏幕的带触摸屏的设备上,如此时在非主屏幕的触摸屏上进行触摸,使用 GetStylusPoint 或 GetIntermediateTouchPoints 方法获取触摸点时,将会发现所获取的触摸点的坐标是偏的,偏的坐标差值刚好是整个屏幕距离
林德熙
2023/12/10
3162
WPF 已知问题 开启 WM_Pointer 消息之后 获取副屏触摸数据坐标偏移
Android自定义控件坐标系解析
自定义控件要想彻底的把握,掌握Android各种坐标系及一些API的坐标含义毫无疑问是不可忽视的技能,对于控件的摆放位置、触摸点、控件绘制等都离不开坐标系,所以学习自定义控件之前我们就先来谈一下Android坐标系。
SoullessCoder
2021/05/20
8050
WPF 如何计算矩形内一个坐标相对另一个矩形的坐标
我在 WPF 中拿到一个矩形里面的一个坐标,在这个矩形里面包含了另一个矩形,我想将这个点转换到另一个矩形里面的坐标。也就是说我拿到一个点,这个点的左上角(0,0)坐标就是矩形1的左上角坐标,而我想要将这个点转换为以矩形2的左上角坐标作为原点的坐标系的坐标
林德熙
2022/08/04
6540
相关推荐
屏幕坐标与客户坐标的区别
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文