memDC.CreateCompatibleDC(NULL);
memBitmap.CreateCompatibleBitmap(pDC, nWidth,nHeight);
Cbitmap*pOldBitmap=memDC.SelectObjet (&memBitmap);
(3) 先将背景色清除,然后绘图:
memDC.FillSolidRect(0,0,nWidth,nHeight,
RGB(255,255,255));
memDC.MoveTo(……);
memDC.LineTo(……);
(4) 调用BitBlt在屏幕上显示设备对象中的更新结果;
(5) 绘图完毕后,释放绘图对象:
memDC.DeleteDC();
memBitmap.DeleteObject();
2.2 运行过程中动态改变列宽、行宽
由于控件不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行。当某个程序调用控件时,控件的大小可以动态设置,设置后就固定不变。
当需要改变列表控件的列宽时,在鼠标获得列的焦点后,只需要像ListCtrl控件拖动某列即可改变列的宽度。
而为了运行时界面的美观,数据需要铺满整个控件,这就需要在控件中均匀分布各行。当需要改变行宽时,改变的是所有的行宽。所以本控件是在计算数据滚动区域高度后,根据需要改变的行宽,重新分布各行,并且相应改变字体大小,以适应新的行宽。
2.3 读写配置文件信息
当控件被应用程序首次加载时,根据预留接口可以配置参数信息,包括参数名、参数对应数据显示上下限、报警值、字体大小、背景色、文本色、行宽、列宽等信息。程序运行后,根据显示需要,可以动态更改行宽列宽信息,以适应屏幕需要。
为了体现使用控件的便利,这些初步配置信息和更改信息,必须被保存,以供应用程序下次加载控件时自动调用。
3 使用效果
把列表滚动控件集成到遥测数据采集软件中,列表滚动控件运行良好,占用内存空间少。实时运行过程中,可以动态调整列宽行宽信息,当数据超出报警值,可以显示报警信息,运行界面如图3所示。
图3 列表滚动控件运行效果
在100 ms至6 ms间隔的采集信息测试过程中,数据滚动更新稳定,没有出现闪烁现象。
4 结 语
基于ActiveX技术的为数众多的软件组件都提供了满足某个规范的一系列编程接口,应用程序可以通过该编程接口使用有软件组件提供的各种功能,而无需知道这些功能在具体的软件组件里是如何实现的。双缓存技术能够有效的解决数据频繁刷新引起的屏幕闪烁问题。本软件就是基于这两种技术开发出来的,供遥测数据采集软件调用,测试表明,该软件运行稳定,能够满足实时遥测数据的采集分析。
参考文献
[1] 任淼,王秀萍.2011年国外空空导弹发展综述[J].航空兵器,2012(3):3?7.
[2] 樊会涛.空空导弹系统总体设计[M].北京:国防工业出版社,2007.
[3] 李英丽,刘春亭.空空导弹遥测系统设计[M].北京:国防工业出版社,2006.
[4] 安桂生,陈雷.空空导弹靶场遥测接收处理的现状与发展趋势[J].航空兵器,2006(3):56?59.
[5] 孙鑫,余安萍.VC++深入详解[M].北京:电子工业出版社,2006.
[6] 方可燕,张双民,徐振明.Visual C++ 6.0实战与精通[M].北京:清华大学出版社,2000.
[7] 孙家广.计算机图形学[M].北京:清华大学出版社,2003.
[8] 任哲.MFC Windows应用程序设计[M].北京:清华大学出版社,2004.
[9] 刘婷婷,潘彤,陈彬茹.利用双缓存技术提高绘图效率[J].电脑编程技巧与维护,2012(18):22?23.
[10] 姜晓峰,李云飞.计算机图形图像技术与应用教程[M].北京:北京希望电子出版社,2002.
[11] 周宪英,高成文.光滑不等距插值算法及其在遥测数据处理中的应用[J].现代电子技术,2013,36(18):13?15.
[12] 刘亚南,陈雷,常树龙,等.遥测数据融合软件的设计与实现[J].现代电子技术,2012,35(4):136?138.
[13] 王冬冬,李宇,张保祥.基于FPGA与ARM的遥测数据网络化采集[J].现代电子技术,2011,34(16):89?92.
[14] 常树龙.空空导弹遥测数据三维实时显示系统设计与实现[J].现代电子技术,2010,33(4):64?66.