关于C++提取鼠标位置处的坐标的程序
voidCClickView::OnDraw(CDC*pDC){CClickDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);CStri...
void CClickView::OnDraw(CDC* pDC)
{
CClickDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CString str;
CPen pen, *p_pen;
str.Format("点击鼠标左键可显示点击处的坐标值");
pen.CreatePen(PS_SOLID,3,RGB(0,0,255));
p_pen=pDC->SelectObject(&pen);
if(flag)//前面设置过ONLBUTTONDOWN,就是默认执行下面的内容,按下鼠标左键后执行else之后的内容
pDC -> TextOut(100, 0, str);
else
.........................
请问这部分应该怎么写?
我在网上找的用法是
POINT Pt;
GetCursorPos(&Pt);
但是点击左键后显示出的是一组不会变化的还明显有问题的坐标
求高手给下代码谢谢
} 展开
{
CClickDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CString str;
CPen pen, *p_pen;
str.Format("点击鼠标左键可显示点击处的坐标值");
pen.CreatePen(PS_SOLID,3,RGB(0,0,255));
p_pen=pDC->SelectObject(&pen);
if(flag)//前面设置过ONLBUTTONDOWN,就是默认执行下面的内容,按下鼠标左键后执行else之后的内容
pDC -> TextOut(100, 0, str);
else
.........................
请问这部分应该怎么写?
我在网上找的用法是
POINT Pt;
GetCursorPos(&Pt);
但是点击左键后显示出的是一组不会变化的还明显有问题的坐标
求高手给下代码谢谢
} 展开
3个回答
展开全部
你是要随着鼠标移动,获取鼠标坐标值吧?
那函数要写在OnMouseMove里面。
OnDraw是绘图函数。
CWnd::OnMouseMove
afx_msg void OnMouseMove( UINT
nFlags, CPoint point );
CPoint就是你要的坐标值。然后调用Invalidate或者UpdateWindow来刷新窗口,系统会自动调用OnDraw
那函数要写在OnMouseMove里面。
OnDraw是绘图函数。
CWnd::OnMouseMove
afx_msg void OnMouseMove( UINT
nFlags, CPoint point );
CPoint就是你要的坐标值。然后调用Invalidate或者UpdateWindow来刷新窗口,系统会自动调用OnDraw
更多追问追答
追问
不是,就是显示鼠标点击处那个点的坐标就好了 请问代码怎么写?
追答
鼠标点击处那个点的坐标要在OnLButtonDown这个函数中捕获,这算是一个回调函数,系统在调用的时候会自动传入一个CPoint的坐标值。
CWnd::OnLButtonDown
afx_msg void OnLButtonDown( UINT
nFlags, CPoint point );
你可以设置一个成员变量CPoint point1,然后在把OnLButtonDown这个函数中把point赋值给point1,就可以了
展开全部
如果是单击-显示坐标,那这里不填任何东西。因为ONLBUTTONDOWN存在的地方才有坐标,在if(flag)的时候清理下画布就可以了。
如果是跟随,把if(flag)去掉就可以了。记得每次画之前清理画布。不知道是不是这个意思?
如果是跟随,把if(flag)去掉就可以了。记得每次画之前清理画布。不知道是不是这个意思?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同意上面的,如果你要获取鼠标位置,处理WM_MOUSEMOVE 就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询