MFC中关于设备(屏幕)坐标和逻辑坐标
来源:互联网 发布:关于大数据存储论文 编辑:程序博客网 时间:2024/05/22 04:28
设备坐标(Device Coordinate)又称为物理坐标(Physical Coordinate),是指输出设备上的坐标。通常将屏幕上的设备坐标称为屏幕坐标。设备坐标用对象距离窗口左上角的水平距离和垂直距离来指定对象的位置,是以像素为单位来表示的,设备坐标的X轴向右为正,Y轴向下为正,坐标原点位于窗口的左上角。
逻辑坐标(Logical Coordinate)是系统用作记录的坐标。在缺省的模式(MM_TEXT)下,逻辑坐标的方向和单位与设备坐标的方向和单位相同,也是以像素为单位来表示的,X轴向右为正,Y轴向下为正,坐标原点位于窗口的左上角。逻辑坐标和设备坐标即使在缺省模式下其数值也未必一致,除了在以下两种情况下:
1. 窗口为非滚动窗口
2. 窗口为滚动窗口,但垂直滚动条位于滚动边框的最上端,水平滚动条位于最左端,但如果移动了滚动条这两种坐标就不一致了。
在VC中鼠标坐标的坐标位置用设备坐标表示,但所有GDI绘图都用逻
坐标表示,所以用鼠标绘图时,那么必须将设备坐标转换为逻辑坐标,可以使用CDC 函数DptoLP()将设备坐标转化为逻辑坐标,同样可以用LptoDP()将逻辑坐标转化为设备坐标。
ScreenToClient和ClientToScreen实际上是转换一个参照物的概念,如ie客户区上一个button,相对于ie的坐标是(x, y),ie客户区相对于屏幕原点的坐标是(x0 , y0),那么button的screen坐标就是(x+x0, y+y0)
ScreenToClient和ClientToScreen都假定坐标是设备坐标。
逻辑坐标(Logical Coordinate)是系统用作记录的坐标。在缺省的模式(MM_TEXT)下,逻辑坐标的方向和单位与设备坐标的方向和单位相同,也是以像素为单位来表示的,X轴向右为正,Y轴向下为正,坐标原点位于窗口的左上角。逻辑坐标和设备坐标即使在缺省模式下其数值也未必一致,除了在以下两种情况下:
1. 窗口为非滚动窗口
2. 窗口为滚动窗口,但垂直滚动条位于滚动边框的最上端,水平滚动条位于最左端,但如果移动了滚动条这两种坐标就不一致了。
在VC中鼠标坐标的坐标位置用设备坐标表示,但所有GDI绘图都用逻
坐标表示,所以用鼠标绘图时,那么必须将设备坐标转换为逻辑坐标,可以使用CDC 函数DptoLP()将设备坐标转化为逻辑坐标,同样可以用LptoDP()将逻辑坐标转化为设备坐标。
ScreenToClient和ClientToScreen实际上是转换一个参照物的概念,如ie客户区上一个button,相对于ie的坐标是(x, y),ie客户区相对于屏幕原点的坐标是(x0 , y0),那么button的screen坐标就是(x+x0, y+y0)
ScreenToClient和ClientToScreen都假定坐标是设备坐标。
- MFC中关于设备(屏幕)坐标和逻辑坐标
- MFC-设备坐标和逻辑坐标
- MFC-设备坐标和逻辑坐标
- MFC-设备坐标和逻辑坐标
- MFC-设备坐标和逻辑坐标
- 设备坐标和逻辑坐标
- 设备坐标和逻辑坐标
- 设备坐标和逻辑坐标
- 设备坐标和逻辑坐标
- 设备坐标和逻辑坐标
- 设备坐标和逻辑坐标
- 设备坐标和逻辑坐标
- 逻辑坐标和设备坐标
- 设备坐标和逻辑坐标
- 设备坐标和逻辑坐标
- 设备坐标和逻辑坐标
- 逻辑坐标和设备坐标
- 设备坐标和逻辑坐标
- IEEE 802.1d协议
- MySQL中关于日期、时间的数据类型和函数
- 名词王国里的死刑(java 面向对象的思考)
- UVa 111 History Grading (DP&LCS)
- 人工费广告费
- MFC中关于设备(屏幕)坐标和逻辑坐标
- Makefile中wildcard的使用
- Linux桌面配置文件
- 反复推进区间开头和末尾, 求解最小区间
- emulator-5554 disconnected!
- 今天你不改变,明天你将被别人改变!
- java 解析properties 文件
- SQL脚本osql不是内部或外部命令 也不是可运行的程序或批处理文件。
- c++程序设计教程