您的位置:软件 > 开发者网络 > 开发工具 > 开发专栏 > VB > 正文
用VB实现数字波形显示程序
[文章信息]
作者:LXJ
时间:2004-01-18
出处:论坛
责任编辑:方舟
[文章导读]
本文详细介绍了在VB集成环境下数字波形高速显示的方法
advertisement
热点推荐
· 11.10软件精选 FW实用设计
· IE最新安全漏洞补救几大措施
· M牛的网络生活之下载篇
· Norton Ghost 9.0全新体验
· InstallShield简明使用教程之前言
[正文]

1 2  下一页

天极IT资讯短信服务 电脑小技巧
资费:包月5元
手机:
介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。


  摘 要:本文详细介绍了在VB集成环境下数字波形高速显示的方法,同时对双通道波形显示和数字滤波方法也进行了介绍。

  关键词:数字;波形;显示 ;滤波

  1 前言:

  随着计算机技术及电子技术的发展,数字采集技术在检测领域的应用越来越广泛,检测速度越来越高,检测的数据量越来越大,特别是在无损检测领域,将检测数据通过计算机处理后绘制出波形,并实时显示,对及时发现伤损、分析伤损具有重要意义。

  2 波形显示

  检测数据通常是离散的数据,将离散的数据绘制出波形,可通过在两点间连接线段的方法实现。

  2.1 用Line方法显示波形

  VB提供了Line画直线方法,可在窗体上增加一个图片框控件,适当设置图片的大小和背景颜色,用Line方法将离散数据按检测顺序连接成线段,即可将波形显示在图片框中。但该方法显示波形速度较慢,不适合高速显示的应用。

  2.2 Windows API函数显示波形

  在VB中两点间连线的另一种方法是用Windows API函数,Win32 API提供了以下两个函数,联合使用可实现波形的快速显示,经过测试,显示速度比使用Line方法快70%以上。

  LineTo函数:

   函数功能:画出由数组定义的点连接的一系列线段。

   函数原型:BOOL LineTo(HDC hdc,int nXEnd,int nYEnd);

  参数:

   hdc:设备环境句柄。

   nXEnd:定义线段终点的X坐标。

   nYEnd:定义线段终点的Y坐标。

   返回值:若函数调用成功,则返回非0值;若函数调用失败,则返回值为0。

  MoveToEx函数:

   函数功能:将当前位置更新为指定的点,并有选择的返回原先的位置。

   函数原型:BOOL MoveToEx (HDC hdc,int X,int Y,LPPOINT lpPoint);

  参数:

   hdc:设备环境句柄。

   X:定义新位置的X坐标(逻辑坐标)。

   Y:定义新位置的Y坐标(逻辑坐标)。

   lpPoint:指向一个POINT结构,结构中存放原先的位置。若此参数为NULL,则不返回原先的位置

  返回值:若函数调用成功,则返回非0值;若函数调用失败,则返回值为0。

  在连接线段时,首先将检测数据放入一个数组中,用MoveToEx函数定位画线的起始点坐标,然后用LineTo函数画出起始点至下一个点之间的线段,再用MoveToEx将画线的起始点定位到下一个点,继续用LineTo函数画线,如此循环,即可将离散点连接成波形。

  例:

zz = MoveToEx(Picture1.hdc, i, Mwave(i ), LpPoint1)
zz = LineTo(Picture1.hdc, i, Mwave(i+1))

  其中:Picture1是显示波形的图片框。

  Mwave是存储检测波形的数组。

  LpPoint1可按如下方式定义为自定义类型,用于返回起始点坐标。

Type POINTAPI
X As Long
Y As Long
End Type
Public LpPoint1 As POINTAPI

  2.3 在VB中声明Windows API函数

  用Windows API函数可以实现波形的快速显示,但在使用Windows API函数之前,需在VB中对要使用的API函数用Declare语句声明。声明形式主要有两种:如果该API有返回值,应将其声明为Function函数;如果该API没有返回值,可将其声明为Sub函数。声明形式如下:

Declare Function apiname Lib "libname" [Alias "alias"] [([[ByVal] variable [As type][,[ByVal] variable [as type]]…])] as Type;
Declare Sub apiname Lib "libname" [Alias "alias"] [([[ByVal] variable [As type][,[ByVal] variable [as type]]…])];

  其中:Function和Sub用来指定要调用的DLL API函数类型,Lib用来指明DLL文件的路径。如果要调用的API函数使用字符串,必须用Alias指定正确的字符集:ANSI或Unicode;ByVal用于指明参数的传递为值传递,不加ByVal为地址传递;variable 为变量名称;type为变量类型。

  在函数的声明和应用时,变量个数应和函数原型相同,类型一致,一一对应。

  下面给出了LineTo和MoveToEx两个DLL API函数声明的实例,使用时将以下语句放到标准模块的通用声明部分,即可在程序的任何地方调用。

Public Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
Public Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, lpPoint As POINTAPI) As Long

  如果只想在单一模块中调用DLL API,可将Declare前面的Public改成Private,同时将该声明语句放到调用该函数模块的通用声明部分。

  经过声明之后的Windows API函数,VB可以象使用自身函数一样来使用。

1 2  下一页

·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载


发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • 用VB设计MSN信息群发软件
  • 用VB创建MS Office的COM加载项
  • 用VB6.0设计简易赛车游戏
  • VB6.0初学者的十个编程小技巧
  • 基于VB6.0的Windwos API全攻略
  • VIA驱动问题导致DVD刻录失败
  • [配置推荐]学生型闪龙配置
  • 11.10软件精选 FW实用设计
  • 精英主板全面迈进P5时代
  • 详解11月三大硬件杀手游戏及四大凶器
  • 选硬盘 用好希捷互动存储专家
  • NDS十大最受期待游戏
  • 中国星际个人联赛第6轮综述
  • Advertisement

    天极无线
    待机彩图    >>更多
    多彩动画    >>更多
    美妙和弦    >>更多
    天使在唱歌
    壁虎漫步
    PrettyBoy
    LoveLoveLove
    我是你的小小狗
    单身情歌
    十面埋伏
    祝酒歌
    回心转意
    波斯猫
    太委屈
    S.H.E
    潘玮柏
    M2M
    蔡依林
    阿牛
    林志炫
    陈弈迅
    刀郎
    黑龙
    S.H.E
    陶晶莹
    情人玫瑰坊
    音乐风云
    新片速递
    神秘测试
    都市约会
    ·天极彩信天天精彩
    ·图铃梦工厂下载无限!
    ·找寻童真,卡通专题
    ·夏日激情交友社区!
    ·星座运程,预测人生

    CSEEK搜索