请教设备坐标和逻辑坐标的概念! 应该好好看看msdn,把英文打出来,我也是这样看的.具体查找可在search中键入Device Context,上面也会给一些例子. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 所谓设备坐标与逻辑坐标只是相对的概念。比如点pt(1000,1000),如果你认为他是设备坐标,那么经过下变换,他就变成逻辑坐标:dc.DPtoLP(&pt);如果你认为他是逻辑坐标,那么经过下变换,他就变成设备坐标:dc.DPtoLP(&pt);是设备坐标还是逻辑坐标,与DC的影射模式(MapMode)无关,任何影射模式都有设备坐标与逻辑坐标。其中,设备坐标是统一的的,即都是指设备象素坐标。1.首先、设备坐标指的是物理设备以象素点为单位。 逻辑坐标除MM_TEXT外均指物理尺寸,如mm,inch等2.数字本身没有逻辑与设备之分CRect r=CRect(0,0,50,30); CSize size(100,80); CPoint point(50,60); 孤立的看待这些点或坐标是没有意义的,他是逻辑还是设备坐标取决于编程着的主观愿望,和上下文的意义。3.DPtoLP指将象素点数坐标转换为在相应设备上该数目的象素点在该设备上实际物理长度(尺寸)坐标。LPtoDP指将相应设备实际物理长度(尺寸)坐标转换为在相应设备上该物理长度(尺寸)所占用的象素点书目坐标 在WM_LBUTTONDOWN中,它有一个参数CPoint point,这是鼠标当前位置,即设备坐标,你可以用下面的语句来实现你的要求:CDC* pDC=GetDC();pDC->DPToLP(&point);if(rect.PtInRect(&point)){ //Do what you like when you select this rect}//rect is the rect you draw in the window. 请参阅 <<Mfc开发Window/nt4程序>>,好像是清华大学的译版,里面有详细介绍. dlg.domodal()提示:VIEW执行系统不支持的操作 用ifstream定义读取的文件,该用什么语句移动文件指针? CreateProcess()和直接运行程序有何不同? ListCtrl查找问题 为什么我自己定义的函数不行呢? 树控件如何用一个图标来与每个节点相对应? 消息问题,向大侠们请教 如何按一定的格式把文本保存为TXT文件?我保存时不能自动控制打开后文本位置。HELP ME!!! 怎样加密文件夹 MFC C++指针读取异常 VC的打印功能如何实现? 如何将类添加到程序中?
比如点pt(1000,1000),如果你认为他是
设备坐标,那么经过下变换,他就变成逻辑
坐标:
dc.DPtoLP(&pt);
如果你认为他是
逻辑坐标,那么经过下变换,他就变成设备坐标:
dc.DPtoLP(&pt);是设备坐标还是逻辑坐标,与DC的影射模式(MapMode)
无关,任何影射模式都有设备坐标与逻辑坐标。其中,设备坐标
是统一的的,即都是指设备象素坐标。1.首先、设备坐标指的是物理设备以象素点为单位。
逻辑坐标除MM_TEXT外均指物理尺寸,如mm,inch等
2.数字本身没有逻辑与设备之分
CRect r=CRect(0,0,50,30);
CSize size(100,80);
CPoint point(50,60); 孤立的看待这些点或坐标是没有意义的,他是逻辑还是设备坐标
取决于编程着的主观愿望,和上下文的意义。
3.DPtoLP指将象素点数坐标转换为在相应设备上该数目的象素点
在该设备上实际物理长度(尺寸)坐标。
LPtoDP指将相应设备实际物理长度(尺寸)坐标转换为在相应设备
上该物理长度(尺寸)所占用的象素点书目坐标
你可以用下面的语句来实现你的要求:
CDC* pDC=GetDC();
pDC->DPToLP(&point);
if(rect.PtInRect(&point)){
//Do what you like when you select this rect
}
//rect is the rect you draw in the window.