mfc关于鼠标移动的疑问
我想用mfc自制一个画笔,利用OnMouseMove获取坐标信息。但是发现获得的坐标不连续,如果鼠标移动太快的话线条有断点,请问该怎么解决?能改变函数读取坐标信息的频率吗...
我想用mfc自制一个画笔,利用OnMouseMove获取坐标信息。但是发现获得的坐标不连续,如果鼠标移动太快的话线条有断点,请问该怎么解决?能改变函数读取坐标信息的频率吗?
Windows画图的时候画笔的原理是什么? 展开
Windows画图的时候画笔的原理是什么? 展开
3个回答
展开全部
没有改变函数读取坐标信息的频率。
这个涉及Windows的窗口消息机制。鼠标移动时,系统消息队列中会新增WM_MOUSCE_MOVE消息,然后根据窗口消息处理机制及MFC的封装处理,最终会进入你写的OnMouseMove函数。由于系统需要处理的消息很多,鼠标移动消息只是其中一种,所以不可能及时处理。至于是系统没有及时新增WM_MOUSCE_MOVE消息,还是窗口消息处理机制进行了过滤,我就不是很懂了。
同意ldy0628,不能画点。要么画直线LineTo,要么画弧线ArcTo。
其实MFC也已经做了封装了。其实有时间的话,最好是写Win32程序,直接调用WinAPI,GDI。
这个涉及Windows的窗口消息机制。鼠标移动时,系统消息队列中会新增WM_MOUSCE_MOVE消息,然后根据窗口消息处理机制及MFC的封装处理,最终会进入你写的OnMouseMove函数。由于系统需要处理的消息很多,鼠标移动消息只是其中一种,所以不可能及时处理。至于是系统没有及时新增WM_MOUSCE_MOVE消息,还是窗口消息处理机制进行了过滤,我就不是很懂了。
同意ldy0628,不能画点。要么画直线LineTo,要么画弧线ArcTo。
其实MFC也已经做了封装了。其实有时间的话,最好是写Win32程序,直接调用WinAPI,GDI。
展开全部
你画线是怎么画的?SetPixel吗?这个是画点的,当然是断点。
Windows画连续线都是通过画直线来画的,在OnLButtonDown中调用
dc.MoveTo(m_pOrigin); 然后在OnMouseMove一直调用dc.LineTo(point);就会产生连续的线了。
Windows画连续线都是通过画直线来画的,在OnLButtonDown中调用
dc.MoveTo(m_pOrigin); 然后在OnMouseMove一直调用dc.LineTo(point);就会产生连续的线了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么年代了 还玩MFC
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询