关于超想
本站导航
邮件列表
  首页 | 本站产品 | Delphi资料 | 免费资源 | 程序人生 | 软件工程 | 网站设计 | 推荐网站
你所在的位置 -> 主页 -> 超想软件 -> 编程资料 -> Vb -> 初学者 ->详细
相关内容  
 
 
在Delphi程序中应用IE浏览器控件
 
【新品推荐】

  详细内容
 

结 构
作者: 评价: 上站日期: 2001-09-01
内容说明:
来源:

  结构是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,你将一无所获。由于结构名实际上就是指向这个结构的指针(这个结构的首地址),所以,你也就传送特定的结构名就可以了(参见小结,我用红色字体来突出了这种传递方式)。
  
  由于结构传送的是指针,所以函数将直接对结构进行读写操作。这种特性很适合于把函数执行的结果装载在结构之中。 

 
你所在的位置 -> 主页 -> 超想软件 -> 编程资料 -> Vb -> 初学者 ->详细
  首页 | 本站产品 | Delphi资料 | 免费资源 | 程序人生 | 软件工程 | 网站设计 | 推荐网站
声明:本站内容除注明原创以外均从网上摘抄,如有侵权请指明。
  如果您对我们的网站有什么意见或者建议,请与我们联系
powered by 建站易上手- V2.0