中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual Basic > 综合文章
感悟VB细水长流话API(四-1)
作者:未知 时间:2004-02-14 12:12 出处:电脑爱好者 责编:chinaitpower
              摘要:感悟VB细水长流话API(四-1)
感悟VB细水长流话API(四-1)

  经过前几期的连载,我们学到了几个有用的API,也许有的读者会希望我尽快介绍更多的API,不过有许多简单的API的用法是相似甚至相同的,所以为了让读者学到真正有用的知识,在连载的初期,我讲的API将是比较简单而又涉及到相关基础知识的。至于那些用法极相似甚至相同的,我会在适当的时候再介绍它们,只是详细程度和侧重点不同而已。这点希望引起读者的注意。

第四话 使用自定义类型

  我在前面已经提到过自定义类型,这次我用一个简单的API来说明一个自定义类型在API中的使用。

  VB中规定了自定义类型的变量传递给函数或子程序时必须按引用来传递(关于按引用传递与按值传递,将在以后的文章中做详细介绍),因此下面这个API的声明,你会发现和前面所介绍的几个有少许不同。

Public Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long

相比上一话中的一个API:

Public Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

  可发现参数前面少了个ByVal。如果不加ByVal,或者把ByVal换成ByRef,就是按引用传递。POINTAPI不是VB的标准数据类型,它是一个自定义类型。从API浏览器中我们得到它的定义原形是这样的:

Public Type POINTAPI

x As Long

y As Long

End Type


  这里应该引起注意的是,你应该把POINTAPI的定义写在使用它的函数声明之前,否则VB会认为你的类型未定义。你也不可以把 x As Long 和 y As Long 的位置对调,如果对调了,在这个API中最多只会使原本 x 的值变成 y 的值,y 的值变成 x 的值,但在更复杂的自定义类型中,结果就不可预知了。

  这个API的作用是得到鼠标指针在屏幕中的坐标(以像素为单位)。你可以在自己的程序中试验它,比如:

Dim tCursor As POINTAPI

GetCursorPos tCursor

Debug.Print tCursor.x, tCursor.y


将从调试窗口打印鼠标指针的当前坐标。
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有