注册 登录
编程论坛 VC.NET论坛

请教重绘的问题

weidonghongzjk 发布于 2006-06-27 00:03, 1715 次点击

请教大虾:
1本人已在视图中画了若干图形;
2想在视图中从左向右画一条垂直的移动的直线;
3在直线移动的过程中视图中原有的图形不被擦除或改变;
本人思路如下,请高手指点
1设置时钟
2响应OnTimer事件
3在OnTimer中擦出前一条直线并画出下一条直线
我想应该是关于SetROP的设置问题,但试了了若干总达不到效果;
我该怎么办?思路有问题吗?

6 回复
#2
十一月天2006-06-27 09:04
我到觉得喝SetROP的设置问题没什么关系,你是怎么擦除图像的?
#3
weidonghongzjk2006-06-27 12:17

我也不太清楚,具体操作请指教。
(擦出图像就是用绘图的相反模式在画一遍直线,好像橡皮线就是这样实现的

#4
十一月天2006-06-27 16:44
我只会再从新画一遍整个图像
#5
weidonghongzjk2006-06-30 15:41

问题已经基本结决,即在文档中建立两个点,在OnTimer中改变他们的值,使每次时间响应加一,然后用UpdateAllView。在OnDraw中画线就行了。若图像闪烁,则可在OnTimer中定义一个矩形,它可以把那两个点包含在里面,然后调用InvalidateRect(Rrue)就行,后面一种方法在单文档中已经实现,效果不错,但在多文档中效果不行,不知原因,可能是矩形坐标的定义和点坐标的定义在屏幕上需要转化吧,不太清楚,有谁知道,告诉我一声,谢谢

#6
热情依然2006-06-30 16:39
多文档的话你要知道你当前获得焦点文档是什么,应该先用GetActiveView获得当前的文档,然后再用你单文档的方法

[此贴子已经被作者于2006-6-30 16:39:53编辑过]


#7
NET爱好者2006-07-09 00:17
如果是MFC的话,可以试试用预览风格的线条画线。
1