为什么要做这件事??加分~~~~~

outiejun 北京美乐科技有限公司(世纪电器网) CTO  2002-07-24 06:23:19
CClientDC dc(this);
OnPrepareDC(&dc);
CRect rectDevice=m_rectEllipse;
dc.LPtoDP(rectDevice);


为什么要dc.LPtoDP ??

我看的是英文资料,有些问题讲得很清楚,但这个我不太明白。

还有OnPrepareDC(&dc);做一些什么事情呢?
...全文
4 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
andy_lau 2002-07-25
1。一般情况下CWnd类以及其派生类的成员函数所使用的坐标为设备坐标
2。而CDC类以及其派生类的成员函数所使用的为逻辑坐标
3。并且如果你想进行健击测试的化(如判断当前鼠标坐标是否在某区域),则一般应在设备坐标中进行。
-----------------
一般也就在这几种情况下出现坐标不一致的情况,
可以用下面的函数进行转换(常用)
LPtoDP-----逻辑->设备
DPtoLp-----设备-〉逻辑

回复
andy_lau 2002-07-25
一般情况下CWnd类以及其派生类的成员函数所使用的坐标为设备坐标
而CDC类以及其派生类的成员函数所使用的为逻辑坐标
并且如果你想进行健击测试的化(如判断当前鼠标坐标是否在某区域),则一般应在设备坐标中进行。
回复
zxjmm 2002-07-24
转换设备环境
回复
outiejun 2002-07-24
这是inside Visual C++里讲得,但能不能在具体一点呢?
回复
rokia 2002-07-24
邏輯單元轉換為設備單元。 我想是由於不同的設置下坐標是不同的,所以如果要精確定位的話,可能需要轉一下
回复
wltsui 2002-07-24
The LPtoDP function converts logical coordinates into device coordinates. The conversion depends on the mapping mode of the device context, the settings of the origins and extents for the window and viewport, and the world transformation.
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告