社区
界面
帖子详情
计算控件位置的函数
liviatt
2008-12-09 09:14:33
((CStatic*)GetDlgItem(IDC_STATIC))->GetClientRect(&rs);
与
((CStatic*)GetDlgItem(IDC_STATIC))->GetWindowRect(&rs);
ScreenToClient(&rs);
算的结果为什么不一样呢
都怎么算的?
...全文
95
8
打赏
收藏
计算控件位置的函数
((CStatic*)GetDlgItem(IDC_STATIC))->GetClientRect(&rs); 与 ((CStatic*)GetDlgItem(IDC_STATIC))->GetWindowRect(&rs); ScreenToClient(&rs); 算的结果为什么不一样呢 都怎么算的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liviatt
2008-12-09
打赏
举报
回复
((CStatic*)GetDlgItem(IDC_STATIC))->GetWindowRect(&rs);
ScreenToClient(&rs);
这个得到的才是控件在父窗口的位置。
((CStatic*)GetDlgItem(IDC_STATIC))->GetClientRect(&rs);
与
((CStatic*)GetDlgItem(IDC_STATIC))->GetWindowRect(&rs);
((CStatic*)GetDlgItem(IDC_STATIC))->ScreenToClient(&rs);
是一样的效果,但是没什么用。
结贴~
amper736
2008-12-09
打赏
举报
回复
不一样啊,,GetClientRect(&rs)这个是你得到的是IDC_STATIC的距形区域,top 和left 是0,经过ScreenToClient(&rs)(也就是减去窗口往上移动的距离)后就变成负数了,而GetWindowRect(&rs)这个得到的是IDC_STATIC控件从窗口右上角开始计算,所在距形区域,,如果还不明白,你在那里设置一个断点,得到的值,再看这个啊
Tinary3v0
2008-12-09
打赏
举报
回复
3楼说的对,ScreenToClient的使用跟调用它的窗口有关系
你要是这样((CStatic*)GetDlgItem(IDC_STATIC))->ScreenToClient(&rs);应该就是相同的值了。
你这样ScreenToClient(&rs);默认的是对话框调用,返回的应该是Static相对于对话框窗口的位置了。
filec75
2008-12-09
打赏
举报
回复
ding
liviatt
2008-12-09
打赏
举报
回复
[Quote=引用 2 楼 amper736 的回复:]
再调用ScreenToClient(&rs);这个函数转换时,整个窗口往右上角移,GetWindowRect(&rs)会得到控件在窗口的坐标,GetClientRect(&rs)减去往右上角移动相应的距离
[/Quote]
按你这么说
((CStatic*)GetDlgItem(IDC_STATIC))->GetClientRect(&rs);
与
((CStatic*)GetDlgItem(IDC_STATIC))->GetWindowRect(&rs);
ScreenToClient(&rs);
应该是一样的了
zskof
2008-12-09
打赏
举报
回复
ScreenToClient(&rs); 在哪里调的,是不是MFC的CDialog中,那么ScreenToClient的主体是CDialog吧,是否应该是
((CStatic*)GetDlgItem(IDC_STATIC))->ScreenToClient(rs.TopLeft());
((CStatic*)GetDlgItem(IDC_STATIC))->ScreenToClient(rs.BottomRight());
amper736
2008-12-09
打赏
举报
回复
再调用ScreenToClient(&rs);这个函数转换时,整个窗口往右上角移,GetWindowRect(&rs)会得到控件在窗口的坐标,GetClientRect(&rs)减去往右上角移动相应的距离
amper736
2008-12-09
打赏
举报
回复
GetWindowRect 返回坐标相当于整个屏幕
GetClientRect 返回控件自身大小
Qt鼠标相对
位置
、绝对
位置
、窗口
位置
、
控件
位置
、
控件
大小、
控件
绝对
位置
在Qt界面开始时,有时需要根据鼠标
位置
,
控件
位置
来确定小窗口的弹出
位置
,本篇博客来分析Qt的各种
位置
。 先声明两个名词: 绝对
位置
:相对于桌面窗口原点(0,0)的
位置
相对
位置
:相对于应用程序原点(0,0)的
位置
坐标系 在讨论各种
位置
之前,我们需要了解电脑桌面坐标系、应用程序坐标系。一般都是规定左上角为坐标原点,水平向右为x正,竖直向下为y正,如下图: 比如我的电脑屏幕是2500*1600,对于桌面坐标系,左边是0,右边是2500,上面是0,下面是1600。 创建一个Qt GUI
mfc
控件
位置
调整和坐标确定 .
在mfc工程中
控件
或者窗口
位置
的调整是经常遇到的,特别是基于对话框的工程。
位置
的调整包括坐标、长度和宽度的变化,一般在窗口类的OnSize
函数
中实现。
控件
位置
的调整涉及的
函数
有:GetWindowRect()、ScreenToClient()、GetClientRect()、MoveWindow()或SetWindowPos(),功能意义如下: GetWindowRect():获得窗口在屏...
C++ MFC / VS2013 之七 (对话框:为
控件
添加消息处理
函数
)
对话框:为
控件
添加消息处理
函数
创建对话框类和添加
控件
变量在上一讲中已经讲过,这一讲的主要内容是如何为
控件
添加消息处理
函数
MFC为对话框和
控件
等定义了诸多消息,我们对它们操作时会触发消息,这些消息最终由消息处理
函数
处理。比如我们点击按钮时就会产生BN_CLICKED消息,修改编辑框内容时会产生EN_CHANGE消息等。一般为了让某种操作达到效果,我们只需要实现某个消息
VS2019/MFC对话框系列:为
控件
添加消息处理
函数
创建对话框类和添加
控件
变量在上一讲中已经讲过,这一讲的主要内容是如何为
控件
添加消息处理
函数
。 MFC为对话框和
控件
等定义了诸多消息,我们对它们操作时会触发消息,这些消息最终由消息处理
函数
处理。比如我们点击按钮时就会产生BN_CLICKED消息,修改编辑框内容时会产生EN_CHANGE消息等。一般为了让某种操作达到效果,我们只需要实现某个消息的消息处理
函数
。当功能实现了想要拥有美观的界面可以借助Toolkit Pro进行界面优化。 Xtreme Toolkit Pro:是屡获殊荣的VC界面库,是MFC开发
qt
控件
设置相对
位置
_qt设置
控件
相对
位置
QT关于
控件
的教程_
计算
机软件及应用_IT/
计算
机_专业资料。zl使用Linux...此例程主要展示用代码方式创建
控件
并用 Layout 管理类对其进行布局; 例程来自 Qt5.2,如过是默认安装,代码位于: C:\\Qt\\Qt5.2.0\\5.2.0\\mingw48_32\\example......3.窗口
位置
更新
函数
updataPosition()的实现 void myDialog::...
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章