| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6824 人关注过本帖
标题:请教如何编写象WORD中画直线的功能(思路)
只看楼主 加入收藏
cumtzdhlx
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-7-8
收藏
 问题点数:0 回复次数:6 
请教如何编写象WORD中画直线的功能(思路)
打开WORD我们可以看到,画直线时,点下鼠标左键,则开始画直线,点着鼠标左键不放,然后移动鼠标,便有一条直线随着你的鼠标移动,只要鼠标改变位置,这条直线就会跟随鼠标改变位置,而且我们看不到先前鼠标位置处的那条直线了,直到你松开左键,这条直线便画在WORD上了
我想问下WORD会不会是用一个BOOL型成员变量来判断鼠标是否按下,当真这个成员变量为真时,在鼠标移动的响应函数中使客户区无效,因此当移动鼠标时后就会进入WM_PAINT消息处理函数中去,在WM_PAINT消息响应函数中,如果先前的成员变量为真,则在重绘操作执行别的已画图形的重绘代码,但不重绘这条直线,因此直线会消失掉,如果是假则表示鼠标左键弹起,在鼠标左键弹起的消息响应中,记录此时的终点坐标,然后在重绘代码中进行重绘,这条直线便永久显现了.
上面是我自己的想法,不过这样如果有别的图形在这个客户区内就要把别的图形进行重新绘制一遍,我觉的效率很低,请各位发表一下自己的看法,参考下...
搜索更多相关主题的帖子: 鼠标 直线 WORD 中画 思路 
2008-03-11 11:29
cumtzdhlx
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-7-8
收藏
得分:0 
刚刚又是了下,我在成员变量为TRUE时候,也加入了重绘代码就基本可以了,(鼠标移动事件太频繁,不加的话直线看不到)可我估计是鼠标移动事件太频繁了,移动快了好象有点阴影,
望大家提出建议啊

[[it] 本帖最后由 cumtzdhlx 于 2008-3-11 11:48 编辑 [/it]]
2008-03-11 11:41
bigdogme2003
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-6-23
收藏
得分:0 
我现在也在做直线方面的编程,问下要是画了一条直线,当鼠标放在直线上时,有个窗口能显示这条线段的长度怎么写代码?然后判断线段长度是否符合要求长度,要是不符合就放大,如果放大超出一定的范围要旋转回来!!
求教各位大侠了
小弟先谢了!!!
2008-03-13 11:34
VanHorn
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2008-1-8
收藏
得分:0 
回复楼主,其实画一条预览风格的直线很简单,只要在使用画笔前,先使用CDC::SetROP2 (参数)。具体参数值我记不清了,参数的意义好像是和当前象素取反。就可以将画笔的风格改为预览风格。然后简单的使用MoveTo和LineTo函数,就可以做到鼠标移动到哪里,线条就跟随到哪里。鼠标放下后,再次使用SetROP2 将风格改回来。然后再使用一次MoveTo和LineTo将实际的线条画出来。
2008-03-13 18:38
cumtzdhlx
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-7-8
收藏
得分:0 
请问楼上的,这个思路是不是在WINDOWS程序设计中第七章出现过..
2008-03-13 19:14
VanHorn
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2008-1-8
收藏
得分:0 
我看的书太多太杂,具体哪看来的我也忘了。呵呵。
2008-03-14 09:14
comlative
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-3-13
收藏
得分:0 
回复楼主
记得是第五章
2008-03-14 19:16
快速回复:请教如何编写象WORD中画直线的功能(思路)
数据加载中...
 
   



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

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