感悟VB细水长流话API
2008-02-23 06:58:42来源:互联网 阅读 ()
然而,学会一种东西是需要付出相当的努力的,API也一样,它可以给我们带来很大的方便,但想要掌握它,就不是使用几个控件那么轻松的事了。所以在看这篇文章时,希望读者可以抱一个正确的态度,就是学习编程不是为好玩,而是为使用; 不要以自己对这方面是否有兴趣而看,而要为API是否能为你的程序带来效果而看。我并不是说一切都是那么严肃和困难,只是API对VB来说,已经可以算高级方面的应用了,所以“认真”和“仔细”是需要的。好了,放松一点,让我们从现在起一步步领略API的好处吧。
前言
1.API
API全称为Application Programming Interface,直译的话可叫它“应用程序接口”。从意义上来说,API是一个操作系统或某个程序本身提供给其他程序使用的函数。在Windows操作系统中,有成千个Windows的函数提供给应用程序使用,本文所说的API,就是指这些函数。
2.VB与API
之所以写这篇文章(而不写VC或其他语言),是因为VB对API的支持不是直接的,而且是不完全的; 在使用上,Windows的API编写时是假设调用者是C或C 语言,因此VB调用API不是很方便,也经常有不必要的错误或不明白如何使用的情况出现。本文的对象主要还是对API没有很深研究的读者,如果你不想了解太多细节,你可以把一个合适的函数用法搬过去,或者你完全不知道API,或者只知道少数,对许多函数还不清楚如何使用,或者你希望可以从本文学到更多使用API的技巧甚至VB的技巧(但愿我可以让你学到),我想你都应该看这篇文章。但还是有个大前提,你必须是已经会使用VB的读者,因为以后讲到的内容不会有一个完整工程从头到尾教你做,有可能是一段简短的声明与调用代码,也可能是几个函数的组合,如果必要的话,也会讲述相关内容的VB技巧,但一定不会有完整的实例示范。
3.本文原则和约定
由于API中有的用法简单有的复杂,有的可单独使用有的却不行,加上各个API的主要用途不同,很难判断先说哪个再说哪个可以让人更容易理解,因此本文尽量从比较常用的说起,从可以对程序产生较大作用的说起。为了能让多数人理解,如果需要涉及到其他方面的知识,也将尽量讲述,让读者可以学到使用API的知识,并能够利用本文中的知识应付新的API。如果你对某个API有什么疑问,欢迎来信(Webmaster@neocactus.com),但由于时间有限,不能对来信一一回复,如果有需要,将会在文中讲述。
基础知识
在讲API之前,让我先讲解一些与API相关的VB基础知识,后文如有涉及将不再详述。此处未提及的,将在本文中第一次接触时再做解释。
1.自定义类型
VB中可以使用Type关键字将已有的数据类型进行组合,成为一个新的类型,该类型就称为用户自定义类型。如:
Type NewType
sName As String
lNumber As Long
End Type
定义了一个名为NewType的自定义类型。以后可以用Dim MyType As NewType来定义一个NewType类型的变量。
sName As String类型的变量有两种,一种是变长,即运行时的字符串长度是可变的,另一种是定长,运行时字符串的长度是固定的。平常我们定义一个字符串变量: Dim strA As String 即定义了一个变长的字符串,但在使用API时经常要用到定长的字符串,应该这样定义: Dim strB As String * 30,即定义了一个可容纳30个字节字符的变量。
2.声明
VB中使用API之前,需要先对API进行声明,声明的方法是使用Declare关键字,如:
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
声明了一个名为SendMessage的API函数。许多API的声明可以在API浏览器中找到,而且本文在讲述一个API时也会给出声明,更深入的知识将在以后讲述。
3.句柄
API中使用得最多的一个词大概就是“句柄”了。如果要说得复杂些,句柄的确可以说上一大堆,不过作为VB的应用,我们可以更简单地去理解它。可以这么说,句柄是Windows系统赋予内存中每一个对象,包括窗口、按钮(其实也是一种窗口)或者文件、图标、菜单等等所有东西的标识。所谓标识就如身份证一样,是不会重复并且和实际对象是一一对应的。它的作用是让Windows知道将被操作的对象是谁。许多VB控件都提供了一个长型的hWnd属性,一般情况下,这个属性就是这个控件的句柄,用API控制这个控件时就需要用到这个属性了。
4.设备上下文
其实我觉得“设备上下文”这个词读起来很奇怪,不过就其字面来看,Device Context(DC,可不是直流电或DreamCast哦)就是这个意思,许多人也这么称它。不过我想翻译为“设备中介”大家应该更容易理解吧。它的作用是作为计算机设备和程序之间的中介,比如显示器和程序之间,或者打印机和程序之间。在对这些设备操作的时候,是需要通过这个中介操作的(与句柄相似),一些控件,如 Picture,想在上面画图时,就要用到hDC属性了。
5.显式声明与自动保存
在默认情况下,Visual Basic会把未声明的变量认为是新变量(即使是你不小心打错字了),这样很容易出现错误,而且要找出这样的错误往往很不容易。加上API的操作基本上都会涉及到系统本身,一旦出错就有可能出现Visual Basic崩溃甚至系统崩溃。所以到Visual Basic的选项设置中选上Require Variable Declaration(需要变量声明)。在 Enviroment(环境)页中的When a program starts(当程序启动时)处选上Prompt To Save Changes(提示保存)或 Save Changes(自动保存)。这样Visual Basic会检查变量是否已经声明,不再允许没有声明的变量出现了。
6.API浏览器
前面讲“声明”的时候提到了API浏览器,这里也说一说它。在安装完VB时,安装程序会把API浏览器复制到你的计算机里。启动后界面如图1(以VB6为准)。可以看到,从API浏览器里我们可以得到API的声明、常量值以及与API相关的自定义类型的定义。其中Declare Scope(声明范围)是指该声明是公有的还是私有的。对于在标准模块中的声明,如果声明为私有,则只对该模块有效,如果为公有,则对整个程序都有效。在窗体模块中只能声明为私有。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 感悟VB细水长流话API 2018-06-17
- 感悟VB细水长流话API(一) 2008-02-23
- 感悟VB细水长流话API(六-1) 2008-02-23
- 感悟VB细水长流话API(四-1) 2008-02-23
- 感悟VB细水长流话API(四-2) 2008-02-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash