有的话,举个例子吧!

解决方案 »

  1.   

    type ABX
      a as string
      b as integer
      c as long
    end type
    就是Type类
      

  2.   

    结构是C和C++语言中的说法。在VB中一般称为自定义数据类型。想必很多朋友都已经认识它。在API领域里,我更喜欢把它叫做结构,因为API各种结构类型根本不是我定义(
      自定义)的。
      在VB中,API结构同样由TYPE.......END TYPE语句来定义。如,在API中,点(Point)结构的定义方法如下:
      Public Type POINTAPI
      X As Long '点在X坐标(横坐标)上的坐标值
      
      Y As Long '点在Y坐标(纵坐标)上的坐标值
      End Type
      又如,API中矩形(Rect)结构的定义如下∶
      Public Type RECT
      Left As Long '矩形左上角的X坐标
      Top As Long '矩形左上角的Y坐标
      Right As Long '矩形右下角的X坐标
      Bottom As Long '矩形右下角的Y坐标
      
      End Type
      这些内容同样可以从API文本游览器中拷贝过来。这些结构中的变量名可随意改动,而不会影响结构本身。也就是说,这些成员变量都是虚拟的。如,POINTAPI结构可改为如下∶
      Public Type POINTAPI
      MyX As Long '点在X坐标(横坐标)上的坐标值
      MyY As Long '点在Y坐标(纵坐标)上的坐标值
      End Type
      不过,一般来讲,是没有这种必要的。结构本身是一种数据类型,因此,使用时必须声明具体变量为该结构型,才能在程序中真正使用到该结构。结构的声明方法和其他数据的声明方法一样,如,以下语句把变MyPoint声明为POINTAPI结构类型∶
      
      MyPoint As POINTAPI
      引用结构中的成员变量也十分简单,在结构名后面加上一个".",然后紧接着写要引用的成员变量即可。这很象VB中的引用一个对象的某个属性。如,假如我们把上面已经声明的MyPoint结构中的X变量的值赋给变量Temp&
      则代码如下∶
      Temp&=MyPoint.X
      但,特别注意的是,你千万不要认为上例中的MyPoint是一个值。它不是值,而是地址(
      指针)。值和地址是完全不同的概念。结构要求按引用传递给WINDOWS函数,即所有API
      函数中,结构都是按ByRef传递的(在Declare语句 中ByRef是默认型)。对于结构的传递,你不要试图采用ByVal,你将一无所获。由于结构名实际上就是指向这个结构的指针(这个结构的首地址),所以,你也就传送特定的结构名就可以了(参见小结,我用红色字体来突出了这种传递方式)。
      
      由于结构传送的是指针,所以函数将直接对结构进行读写操作。这种特性很适合于把函数执行的结果装载在结构之中。