ActiveX控件在轮机模拟器中的应用方法技术

技术编号:9840718 阅读:117 留言:0更新日期:2014-04-02 03:53
本发明专利技术的目的是提供一种ActiveX自绘制控件的制作方法,克服现有的采用其他方法设计控件的不足,采用VB5.0开发环境实现指针式仪表的创建。VB5.0提供了相当好的开发ActiveX控件的环境,提供了多个向导程序(接口向导、属性页向导等)供我们使用,将较为复杂的低层工作进行封装,从而使编程人员将注意力放到界面设计和控件功能上。并将这种方法应用在轮机模拟器的开发设计中。

【技术实现步骤摘要】
【专利摘要】本专利技术的目的是提供一种ActiveX自绘制控件的制作方法,克服现有的采用其他方法设计控件的不足,采用VB5.0开发环境实现指针式仪表的创建。VB5.0提供了相当好的开发ActiveX控件的环境,提供了多个向导程序(接口向导、属性页向导等)供我们使用,将较为复杂的低层工作进行封装,从而使编程人员将注意力放到界面设计和控件功能上。并将这种方法应用在轮机模拟器的开发设计中。【专利说明】本专利技术的目的是提供一种ActiveX自绘制控件的制作方法,克服现有的采用其他方法设计控件的不足,采用VB5.0开发环境实现指针式仪表的创建。VB5.0提供了相当好的开发ActiveX控件的环境,提供了多个向导程序(接口向导、属性页向导等)供我们使用,将较为复杂的低层工作进行封装,从而使编程人员将注意力放到界面设计和控件功能上。并将这种方法应用在轮机模拟器的开发设计中。为解决上诉技术问题,本专利技术的技术方案是:1、定义控件的属性利用接口向导程序设置控件属性,如仪表边框宽度,边框颜色,仪表的最大值,仪表的最小值,刻度增量值,文字字型和颜色等。向导程序自动生成框架程序代码,在框架程序代码的基础上加入满足需要的代码。框架程序代码一般分成几个部分,常量部分放置属性默认值,局部变量部分放置属性的内部变量(控件以外的程序不能访问这些变量),初始化部分放置控件初始化代码,接口程序部分放置读写属性程序(供其他程序读写控件属性使用),其他部分放置内部程序或函数。2、添加绘制代码由框架代码生成的控件只是一个空白窗口,因此需要加入绘制仪表外观(表盘)和指针的代码,编写绘制子程序,在需要的时候调用它。程序如下:Private Sub DrawMeterPlate ()擦处控件窗口(以便重画界面);画表盘程序(采用渐变色使仪表外观具有立体感);画标志区(某转速范围用指定颜色填充);计算比例系数(据属性值);按比例画分度线和写分度值(按指定颜色);用指定颜色写仪表单位名称和其分名称。End Sub程序(1):Public Property Let Value (ByVal New-Value As Single);m-Value = New-Value ;m_Value 为当前值内部变量。PropertyChanged “Value”Call ValueChangeEnd Property程序(2):Private Sub ValueChange ;Call DrawMeterPlate ;幽表盘计算指针偏转角AngleCall DrawPo inter (Angle);画指定角度的指针End Sub当Value值属性改变时,系统自动调用程序(1),由程序(1)调用程序(2)进行仪表显示的刷新。3、显示刷新的改进由上述可知,每次更改当前值时,需要擦除上次的画面(否则会留下一系列指针),重新绘制表盘和指针(当前值位置),会使大量的CPU时间被频繁绘制表盘浪费掉,为此作者在制作仪表控件时采取了 一些措施。因为在程序中使用仪表控件时,特定的控件仪表只有在程序设计阶段才会改变它的外观和仪表固有属性,在程序运行时只有指针的偏转变化(当前值改变),为此作者在控件内部放置一图片框,在程序设计阶段(修改外观属性)将表盘绘制在图片框内,在程序运行阶段再将图片框内已绘制的表盘位图用位块传送语句送到控件窗口,这样每次更改当前值时在控件窗口只绘制指针,从而节省大量的CPU时间。改进程序如下:程序(3):Private Sub ValueChange ;将图片框中表盘位图传送至控件窗口计算指针偏转角AngleCall DrawPo inter (Angle);画指定角度的指针End Sub4、其他属性可为控件指定一个工具箱像标,为控件制作一个About窗体,在控件窗体文件中加入显示About窗体过程,并设置过程属性,这样在使用控件时,在控件属性窗中出现About属性.编译控件工程生成OCX控件文件,可在其他程序中多次使用。与现有技术相比,本专利技术的有益效果是:1)能够实现自绘制控件的绘制2)界面能够自动刷新,并且不会出现图像的闪烁3)使轮机模拟器的界面绘制更加快捷方便,加速了模拟器的研制。【权利要求】1.定义控件的属性利用接口向导程序设置控件属性,如仪表边框宽度,边框颜色,仪表的最大值,仪表的最小值,刻度增量值,文字字型和颜色等;向导程序自动生成框架程序代码,在框架程序代码的基础上加入满足需要的代码;框架程序代码一般分成几个部分,常量部分放置属性默认值,局部变量部分放置属性的内部变量(控件以外的程序不能访问这些变量),初始化部分放置控件初始化代码,接口程序部分放置读写属性程序(供其他程序读写控件属性使用),其他部分放置内部程序或函数;添加绘制代码由框架代码生成的控件只是一个空白窗口,因此需要加入绘制仪表外观(表盘)和指针的代码,编写绘制子程序,在需要的时候调用它;程序如下:Priva te Sub Draw MeterPlate ()擦处控件窗口(以便重画界面);画表盘程序(采用渐变色使仪表外观具有立体感);画标志区(某转速范围用指定颜色填充);计算比例系数(据属性值);按比例画分度线和写分度值(按指定颜色);用指定颜色写仪表单位名称和其分名称;End Sub程序(1):Public Property Let Value (ByVal New-Value As Single);m-Value = New-Value ;m_Value 为当前值内部变量;PropertyChanged “Value”Call ValueChangeEnd Property程序(2):Private Sub ValueChange ;Call DrawMeterPlate ;幽表盘计算指针偏转角AngleCall DrawPointer (Angle);画指定角度的指针End Sub当Value值属性改变时,系统自动调用程序(1),由程序(1)调用程序(2)进行仪表显示的刷新;显示刷新的改进由上述可知,每次更改当前值时,需要擦除上次的画面(否则会留下一系列指针),重新绘制表盘和指针(当前值位置),会使大量的CPU时间被频繁绘制表盘浪费掉,为此作者在制作仪表控件时采取了一些措施;因为在程序中使用仪表控件时,特定的控件仪表只有在程序设计阶段才会改变它的外观和仪表固有属性,在程序运行时只有指针的偏转变化(当前值改变),为此作者在控件内部放置一图片框,在程序设计阶段(修改外观属性)将表盘绘制在图片框内,在程序运行阶段再将图片框内已绘制的表盘位图用位块传送语句送到控件窗口,这样每次更改当前值时在控件窗口只绘制指针,从而节省大量的CPU时间;改进程序如下:程序(3):Private Sub ValueChange ;将图片框中表盘位图传送至控件窗口计算指针偏转角AngleCall DrawPo inter (Angle);画指定角度的指针End Sub其他属性可为控件指定一个工具箱像标,为控件制作一个About窗体,在控件窗体文件中加入显示About窗体过程,并设置过程属性,这样在使用控件时,在控件属性窗中出现About属性.编译控件工程生成OCX 控件文件,可在其他程序中多次使用。【文档编本文档来自技高网...

【技术保护点】
定义控件的属性利用接口向导程序设置控件属性,如仪表边框宽度,边框颜色,仪表的最大值,仪表的最小值,刻度增量值,文字字型和颜色等;向导程序自动生成框架程序代码,在框架程序代码的基础上加入满足需要的代码;框架程序代码一般分成几个部分,常量部分放置属性默认值,局部变量部分放置属性的内部变量(控件以外的程序不能访问这些变量),初始化部分放置控件初始化代码,接口程序部分放置读写属性程序(供其他程序读写控件属性使用),其他部分放置内部程序或函数;添加绘制代码由框架代码生成的控件只是一个空白窗口,因此需要加入绘制仪表外观(表盘)和指针的代码,编写绘制子程序,在需要的时候调用它;程序如下:Private Sub Draw MeterPlate( )擦处控件窗口(以便重画界面);画表盘程序(采用渐变色使仪表外观具有立体感);画标志区(某转速范围用指定颜色填充);计算比例系数(据属性值);按比例画分度线和写分度值(按指定颜色);用指定颜色写仪表单位名称和其分名称;End Sub程序(1):Public Property Let Value(ByVal New‑Value As Single);      m‑Value = New‑Value;m‑Value为当前值内部变量;    PropertyChanged “Value”Call ValueChangeEnd Property程序(2):Private Sub ValueChange;Call DrawMeterPlate;画表盘计算指针偏转角AngleCall DrawPointer(Angle);画指定角度的指针End Sub当Value值属性改变时,系统自动调用程序(1),由程序(1)调用程序(2)进行仪表显示的刷新;显示刷新的改进由上述可知,每次更改当前值时,需要擦除上次的画面(否则会留下一系列指针),重新绘制表盘和指针(当前值位置),会使大量的CPU时间被频繁绘制表盘浪费掉,为此作者在制作仪表控件时采取了一些措施;因为在程序中使用仪表控件时,特定的控件仪表只有在程序设计阶段才会改变它的外观和仪表固有属性,在程序运行时只有指针的偏转变化(当前值改变),为此作者在控件内部放置一图片框,在程序设计阶段(修改外观属性)将表盘绘制在图片框内,在程序运行阶段再将图片框内已绘制的表盘位图用位块传送语句送到控件窗口,这样每次更改当前值时在控件窗口只绘制指针,从而节省大量的CPU时间;改进程序如下:程序(3):Private Sub ValueChange;将图片框中表盘位图传送至控件窗口计算指针偏转角AngleCall DrawPointer(Angle);画指定角度的指针End Sub其他属性可为控件指定一个工具箱像标,为控件制作一个About窗体,在控件窗体文件中加入显示About窗体过程,并设置过程属性,这样在使用控件时,在控件属性窗中出现About属性.编译控件工程生成OCX控件文件,可在其他程序中多次使用。...

【技术特征摘要】

【专利技术属性】
技术研发人员:刘雨
申请(专利权)人:大连海联自动控制有限公司
类型:发明
国别省市:辽宁;21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1