在view中的OnDraw(*pDc)中定义了个矩形用的是 pDc然后用pDc做完图后,现在想加功能,就是当鼠标点击图中的点显示该点数据(也就是该点的坐标)。
添加了LButtonDown的消息函数,OnLButtonDown(UINT nFlags, CPoint point)。然后point和图中的坐标不一样,而且少了将近一倍多,即图中的x为2700, point.x为1216左右。 求解答。
在OnLbuttonDown中用GetDc()获取的CDC的指针,是不是这里的问题?如果是的话,应该怎么获取? 先谢谢大家了。
添加了LButtonDown的消息函数,OnLButtonDown(UINT nFlags, CPoint point)。然后point和图中的坐标不一样,而且少了将近一倍多,即图中的x为2700, point.x为1216左右。 求解答。
在OnLbuttonDown中用GetDc()获取的CDC的指针,是不是这里的问题?如果是的话,应该怎么获取? 先谢谢大家了。
view里是逻辑坐标,先转换一下
如果在视类定义,响应视类OnLButtonDown,应该是一样的。CRect rect1(0,0,400,400); //会在视窗左上角绘矩形。OnLButtonDown(UINT nFlags, CPoint point);//矩形左上角(及视窗口左上角)坐标应该是 0,0
注意坐标转化,可使用ScreenToClient()
point是屏幕坐标 你需要转换为你的图中的坐标
UINT nFlags,
CPoint point
);[in] point
Specifies the x and y coordinates of the pointer, relative to the upper-left corner of the window.
{
CRect rc;
int height,width;
GetClientRect(&rc);
GetWindowRect(&rc);
pDC->DPtoLP(&rc);
height=rc.Height();
width=rc.Width();
rc.left=50;
rc.top=-50;
rc.bottom=height+50;
rc.right=width-500;
Draw_QuXian(pDC,rc,false); //该函数为绘制数据的函数
}
请大家不吝指点
弄错了,我贴上来的时候把注释也去掉了。 void CJKDMDView::OnDraw(CDC* pDC)
{
CRect rc;
int height,width;
GetClientRect(&rc);
//GetWindowRect(&rc);
pDC->DPtoLP(&rc);
height=rc.Height();
width=rc.Width();
rc.left=50;
rc.top=-50;
rc.bottom=height+50;
rc.right=width-500;
Draw_QuXian(pDC,rc,false); //该函数为绘制数据的函数
}
{
CRect rc(50,50,100,100);
Draw_QuXian(pDC,rc,false); //该函数为绘制数据的函数
}CJKDMDView::OnLButtonDown()
{
TextOut(hdc,point.x,point.y,L"test");
}
{
pDC->SetMapMode(MM_LOMETRIC);
}里面加写什么?