问一个个人觉得比较尖端的问题。。高手请进。。

yingyinghz 2003-08-20 11:21:44
小弟在界面上面做的不多。。碰到这么一个难题。。

现在我在一个CVIEW的派生类上加了一幅背景图,

然后需要加一些小圆圈和点点线线等,这些都能够实现,

困难的是我怎样使这些圈圈点点有自己的属性,

并且可以根据需要闪烁和用不同颜色显示(当且仅当我需要的时候),

简单说来就像星际里的机枪兵在地图中一样。。。

哪位好心的大侠帮帮忙。。高分伺候。。
...全文
50 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
luogucai 2003-08-20
  • 打赏
  • 举报
回复
你可以看一下MFC的多线程示例, 你应该用一个类来定义这些点. 里面通过另一个线程来达到你要的效果.
jasn 2003-08-20
  • 打赏
  • 举报
回复
只要一个类,就可以有很多对象不是吗?
yingyinghz 2003-08-20
  • 打赏
  • 举报
回复
谢谢杜杜。。

问题是。。这样的点可能有不下上万条,并且数目是变化的。。

需要对每个机枪兵类都定义吗?
benz600 2003-08-20
  • 打赏
  • 举报
回复
同意,自己写个类吧,很方便
jasn 2003-08-20
  • 打赏
  • 举报
回复
圈圈点点都用一个对象保存,自然会有属性了。
响应视图的 WM_CONTEXT_MENU 消息应可以显示右键菜单了
至于颜色,有属性还怕没有颜色
duqiang2050 2003-08-20
  • 打赏
  • 举报
回复
定义一个枪兵类
里面有个draw成员函数,是根据对象的属性画图用的

在view里的OnDraw里调用枪兵类的draw函数,就画出来了。
yingyinghz 2003-08-20
  • 打赏
  • 举报
回复
国际惯例。。自己UP
sayo 2003-08-20
  • 打赏
  • 举报
回复
用mfc中的CPtrList吧
yingyinghz 2003-08-20
  • 打赏
  • 举报
回复
实在不好意思。。。。

请教一下。。如何创建一个我需要(我要什么样的,就是什么样的)的Object list ,然后往

里面加入我想加的类呢?
喝醉的咖啡 2003-08-20
  • 打赏
  • 举报
回复
清华计算作业题中有一个池塘夜降五色雨的作业和你的要求很像了,呵呵

楼上朋友说了,不是技术问题,具体实现就OK了。

1、OnDraw 去遍历 object list 中每一个 object ,调用其 draw();
2、另外有一个线程去遍历 object list 中每一个 object ,调用其 draw();
3、object list 中每一个(或者归到若干个Group中由不同的timer来调用) object 都有自己的线程,调用其 draw()

都可以咯,看你怎么需要的了
jasn 2003-08-20
  • 打赏
  • 举报
回复
你可以只要求重画某一区域,这在MFC例子中都有的。
yingyinghz 2003-08-20
  • 打赏
  • 举报
回复
估计是上班时间。。出来游动的大侠比较少。。。


如果有哪位大侠知道。。。快拔刀相助啊
yingyinghz 2003-08-20
  • 打赏
  • 举报
回复
还有。。实话实说。。对实例我只有一个模糊的概念,这10000各实例应该都有他们自己的句

柄,我怎么得到他们呢?


大侠指条明路啊 。。。
yingyinghz 2003-08-20
  • 打赏
  • 举报
回复
天。。。。搞复杂了,,我只要让某个点闪烁一下或者某条线的颜色改变5秒钟,我想问的是

是不是每个改变都要重画整个窗口呢?要是10000点就太慢了。
duqiang2050 2003-08-20
  • 打赏
  • 举报
回复
如果都是枪兵无论什么颜色、什么状态、什么位置,都应该是一个类,只不过是不同的实例。如果还有坦克、大舰,那么他们也要有类,而且应该把共同的属性抽象出来作为父类。
这样你应该定义一个“战斗单位”类,作父类,里面有位置、派别等等属性,也应该有个叫draw的抽象虚函数。枪兵类、坦克类、大舰类都应该继承于战斗单位类,并加上独有的属性,如“坦克是否枝开”,再重载draw函数,用于画自己。
yingyinghz 2003-08-20
  • 打赏
  • 举报
回复
好像有所悟。。。

我简单描述一下我的想法,请教一下有没有错:

一开始我要先做好背景,

再建立一个类,在这个类的OnDraw函数中做一些改变点或者线的事情,在画背景的类的Ondraw

函数中调用新建的类的OnDraw函数,同时记录对象。

然后,当我想让某个点或者线的闪烁时候,我就另外开一个线程,重画需要改变属性的对象?

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧