ActiveX控件的刷新问题?高手请进!
自己用VC作了一个ActiveX控件,类似于钟表,用来实时显示;
因为钟表指针的每次转动都要调用Invalidatecontrol()刷新控件
而我需要的刷新频率又比较高,大约5mm一次,造成使用时占用CPU达100%
请问该怎么解决啊!!
(已经使用了双缓冲区解决了闪烁问题)
问题点数:100、回复次数:7Top
1 楼laiyiling(陌生人[MVP])回复于 2006-02-14 17:12:16 得分 20
InvalidateRect()只刷新部分区域Top
2 楼hellopine2()回复于 2006-02-14 17:21:59 得分 0
还是不行啊Top
3 楼xiaoqiqixiao(七七)回复于 2006-02-15 08:54:10 得分 20
为什么要5mm一次,人眼未必跟得上吧,如果频率实在高,不如在想刷新时直接GetDC写
如果没有必要的话,可以缓冲数据,内部再设置一个慢点的定时器,慢慢刷新。
另外,请确定是否是刷新频率快而引起的CPU占用。Top
4 楼hellopine2()回复于 2006-02-15 11:33:23 得分 0
我已经很确定是刷新引起的CPU 100%啊Top
5 楼teli_eurydice(哭泣的仙人掌。。。。)回复于 2006-02-15 11:53:14 得分 60
昨天说了Top
6 楼teli_eurydice(哭泣的仙人掌。。。。)回复于 2006-02-15 11:53:53 得分 0
频繁的双缓冲 很消耗CPUTop
7 楼hellopine2()回复于 2006-02-15 17:35:32 得分 0
TO: teli_eurydice(哭泣的仙人掌。。。。)
多谢!按照你的方法的确可以解决我的问题,但新问题又出来了!
我的程序有多个页面(Dialog),靠showwindow(SW_SHOW )和SW_HIDE显示不同的页面
按你的方法,现在即使我切换到其它页面时,仍然可以看到activex控件的指针(只有指针)在摆来摆去,好恐怖啊!!好像指针什么也挡不住!!
请赐教!!谢谢
Top




