| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1182 人关注过本帖
标题:[求助]鼠标画任意线
只看楼主 加入收藏
名人
Rank: 1
等 级:新手上路
威 望:1
帖 子:205
专家分:0
注 册:2006-3-3
收藏
 问题点数:0 回复次数:4 
[求助]鼠标画任意线
我在鼠标的ON_WM_MOUSEMOVE消息函数中这样实现
if (鼠标左键按下)
pDC->MoveTo(point.x, point.y);
pDC->LineTo(point.x, point.y);
}
但如果鼠标移动速度过快画出来得线是虚线,不管鼠标速度移动多快想画出来的线是实线怎么做呢?
有没有更好的方法呢?

[此贴子已经被作者于2006-5-23 12:05:02编辑过]

搜索更多相关主题的帖子: 鼠标 point pDC 左键 
2006-05-23 12:01
名人
Rank: 1
等 级:新手上路
威 望:1
帖 子:205
专家分:0
注 册:2006-3-3
收藏
得分:0 
没人会吗?

未必钱多乐便多,财多累己招烦恼。 清贫乐道真自在,无牵无挂乐逍遥。
2006-05-25 09:18
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 

你应该把顺序反过来,否则肯定画虚线了

pDC->LineTo(point.x, point.y);
pDC->MoveTo(point.x, point.y);


世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-05-25 09:45
名人
Rank: 1
等 级:新手上路
威 望:1
帖 子:205
专家分:0
注 册:2006-3-3
收藏
得分:0 
以下是引用aogun在2006-5-25 9:45:00的发言:

你应该把顺序反过来,否则肯定画虚线了

pDC->LineTo(point.x, point.y);
pDC->MoveTo(point.x, point.y);

pDC->MoveTo(point.x, point.y);是划线的初始位置
pDC->LineTo(point.x, point.y);是结束的位置
如果颠倒过来默认的初始坐标是0.0,根本就不起作用。

我要实现的是鼠标左键按下画任意线


虽然任意曲线和图形都能画出来,但画快了画出来的都是虚线。

[此贴子已经被作者于2006-5-25 10:50:09编辑过]


未必钱多乐便多,财多累己招烦恼。 清贫乐道真自在,无牵无挂乐逍遥。
2006-05-25 10:05
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 
我知道你的意思,说明白点,你在鼠标左键按下的时候执行pDC->MoveTo(point.x, point.y);,这样就有了一个起始点,然后在mousemove事件函数中先执行pDC->LineTo(point.x, point.y);这样如果鼠标移动过快使得mousemove消息中的点超过了一个像素的距离的话也是画出实线,然后再执行pDC->MoveTo(point.x, point.y);记录最后画到的点。
我已经试过了,是可行的
你用pDC->MoveTo(point.x, point.y);
pDC->LineTo(point.x, point.y);
这样的顺序每次都只画了一个点,如果鼠标移动过快导致mousemove消息发送的间隔超过一个点的话就会画虚线,而我的意思是在每个mousemove消息的点之间直接画线,这样出来的就是实线

世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-05-25 11:12
快速回复:[求助]鼠标画任意线
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028092 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved