+ -
当前位置:首页 → 问答吧 → 在view类中获得CDC的指针问题

在view类中获得CDC的指针问题

时间:2011-12-28

来源:互联网

在view中的OnDraw(*pDc)中定义了个矩形用的是 pDc然后用pDc做完图后,现在想加功能,就是当鼠标点击图中的点显示该点数据(也就是该点的坐标)。
   
  添加了LButtonDown的消息函数,OnLButtonDown(UINT nFlags, CPoint point)。然后point和图中的坐标不一样,而且少了将近一倍多,即图中的x为2700, point.x为1216左右。 求解答。


  在OnLbuttonDown中用GetDc()获取的CDC的指针,是不是这里的问题?如果是的话,应该怎么获取?



  先谢谢大家了。

作者: modicum_ck   发布时间: 2011-12-28

鼠标操作是屏幕坐标
view里是逻辑坐标,先转换一下

作者: ouyh12345   发布时间: 2011-12-28

不知你的矩形是如何定义x和y的,
如果在视类定义,响应视类OnLButtonDown,应该是一样的。

CRect rect1(0,0,400,400); //会在视窗左上角绘矩形。

OnLButtonDown(UINT nFlags, CPoint point);//矩形左上角(及视窗口左上角)坐标应该是 0,0

作者: chinatcp   发布时间: 2011-12-28

在视类中使用 CDC* pDC = GetDC(); 没问题
注意坐标转化,可使用ScreenToClient()

作者: jixiang1983   发布时间: 2011-12-28