内容正文:
模块8 API函数编程
学习目标
掌握API浏览器的使用方法
掌握简单API函数的使用方法
任务1 认识API函数概念
任务要点
掌握API函数的基本概念
了解使用API函数的过程
3
添加并调用API函数
案例8-1:应用API函数,显示计算机名称。显示计算机名的API函数是GetComputerName。本案例先获取函数声明,再在主函数中调用,最后通过弹出窗口MsgBox实现计算机名的输出。
内容讲解:
API就是由WINDOWS系统所提供给各种应用程序调用的函数接口,你可以通过调用这些接口,来完成一些VB中很复杂甚至无法完成的事情。
如果该API函数为多个窗体共用,则应将其定义在模块(Module)中,一般以Public开头,含义是把API函数作为一个公共函数或过程,在一个工程中的任何位置(包括所有的窗体和模块)都能直接调用它。如果该API函数只为一个窗体使用,则可在该窗体的通用声明中声明,以Private开头即可。声明完毕我们就能在程序中使用此API函数了。
添加并调用API函数
任务2 使用API浏览器
任务要点
掌握添加API浏览器的方法
掌握在API浏览器中查找函数的方法
掌握在API浏览器中添加、复制函数声明的方法
一、运行API浏览器
案例8-2:在VB中运行API浏览器,加载API文本文件WIN32API.txt,并将其转换为数据库文件WIN32API.mdb。
案例分析:
在默认安装方式下,VB中没有API浏览器,需要在“外接程序”菜单下手动加载。API浏览器要能够查找到函数声明,必须加载文本文件WIN32API.txt,这里为了加快检索速度,将其转换为数据库文件。
内容讲解:
API浏览器的作用是查询API函数,并获得函数的声明。运行API浏览器的步骤如下:
1、将【API浏览器】添加到【外接程序】菜单,方便在VB中直接运行。
2、在【API浏览器】中加载WIN32API.txt文件,这样才能查找到API函数。
3、如果要加快检索速度,可以将文本文件转换为数据库文件,再重新加载数据库文件。
一、运行API浏览器
二、使用API浏览器
案例8-3:查找API函数BitBlt,将其声明范围设为公有,并添加到选定项中,再复制选定项到剪贴板。
案例分析:
在编程时,只要我们确定了程序所需要的函数,就可以在API浏览器中进行查找,然后将它的声明复制到剪贴板,最后将其加入到程序段中,从而程序中就可以使用这些函数了。
内容讲解:
如果在VB 编程中需要应用多个API函数,可以在API浏览器中分别查找函数声明并添加到“选定项”中,然后一次性复制到剪贴板。
二、使用API浏览器
课堂小练手
8-1:在VB中运行API浏览器,查找TextOut函数的“公有”声明,并复制到剪贴板。
8-2:在API浏览器中查找类型POINTAPI,将其“公有”声明复制到剪贴板。
任务3 使用API函数
任务要点
掌握BitBlt、TextOut函数作用和使用方法
掌握在API浏览器中获得多个函数声明的方法
掌握LoadCursorFromFile、SetSystemCursor函数的意义和调用方法
在程序中应用API函数
案例8-4 :设计“屏幕截取程序”。
案例分析:
API函数BitBlt用于从原设备中复制位图到目标设备,本任务中应用此函数实现屏幕的截图。首先要从API浏览器中获得BitBlt的声明,然后为窗体Form1的菜单【截屏】的Click事件补充代码,实现截取屏幕的功能。
内容讲解:
1.如果我们的程序由多个窗体构成,而且我们需要在多个窗体中使用同一个API函数,就需要在模块中使用Public Declare对函数进行声明。其含义是把API函数作为一个公共函数或过程,在一个工程中的任何位置(包括所有的窗体和模块)都能直接调用它。声明完毕我们就能在程序中使用此API函数了。
在程序中应用API函数
内容讲解:
2.BitBlt函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。其语法格式如下:
BOOL BitBlt(HDC hdcDest,int nXDest,int nYDest,int nWidth,int nHeight,HDC hdcSrc,int nXSrc,int nYSrc,DWORD dwRop)
参数含义:
hdcDest:目标设备环境的句柄。
nXDest:目标矩形区域的左上角X轴逻辑坐标。
nYDest:目标矩形区域的左上角Y轴逻辑坐标。
nWidth:源和目标矩形区域的逻辑宽度。
nHeight:源和目标矩形区域的逻辑高度。
在程序中应用API函数
内容讲解:
参数含义:
hdcSrc:源设备环境的句柄。
nXSrc:源矩形区域左上角的X轴逻辑坐标,函数从该起点nWidth×nHeight大小的位图到目标区域
nYSrc:源矩形区域左上角的Y轴逻辑坐标。
dwRop:指定光栅操作代码。这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的颜色。
在本任务中,光栅操作代码采用的是vbSrcCopy,意为直接复制源设备区域到目标设备区域中。
在程序中应用API函数
在程序中应用API函数
案例8-5 :设计“更改鼠标形状程序”
案例分析:
本案例实现的功能为,当点击“动态光标”按钮时,鼠标光标变成指定的光标样式。调用的API函数是LoadCursorFromFile和SetSystemCursor。在按钮的Click事件中,先利用LoadCursorFromFile函数创建光标,然后调用SetSystemCursor函数改变系统光标。
内容讲解:
1.LoadCursorFromFile函数的功能是根据一个文件中所含的数据创建光标。该函数返回一个新建光标的句柄,文件所包含的光标数据可以是光标格式(CUR)或运动光标格式(.ANI)。函数语法格式如下:
HCURSOR LoadCursorFromFile(LPCTSTR IpFileName);
参数含义:
IpFileName:指明创建光标所用的文件数据资源,文件中的数据格式必须是COR或ANI。
在程序中应用API函数
内容讲解:
2.SetSystemCursor函数的功能为使一个应用程序定制系统光标。其语法格式如下:
BOOL SetSystemCursor(HCURSOR hcur,DWORD id)
参数含义:
hcur:光标的句柄,该函数hcur标识的光标的内容代替id定义的系统光标内容。
Id:指定由hcur的内容替换系统光标。
在程序中应用API函数
在程序中应用API函数
案例8-6:设计“在鼠标位置处显示文字程序”
案例分析:
TextOut函数用于输出字符串,本任务中应用此函数实现在鼠标位置处显示字符串。首先要从API浏览器中获得TextOut的声明,然后为窗体编写代码,得到当前鼠标的位置,并在该处显示字符“Nice”。
内容讲解:
TextOut函数的作用是将当前选择的字体、背景颜色和正文颜色将一个字符串写到指定位置。其语法格式如下:
BOOL TextOut(HDC hdc, int nXStart, int nYStart, LPCTSTR lpString, int cbString)
参数含义:
Hdc:设备环境的句柄,本例中只有一个窗体,故省略了窗体名称。
nXStart:输出字符串基准点的逻辑X坐标。
nYStart:输出字符串基准点的逻辑Y坐标。
lpString:所要绘制的字符串。
cbString:所要绘制字符串的长度。
在程序中应用API函数
课堂小练手
8-3:为窗体的驱动器列表框的Load事件补写代码,调用GetLogicDriveStrings函数,获得磁盘的驱动器清单;调用GetDriveType函数,获得驱动器的类型。结果参照图所示。
实训 设计“改变按钮文字”程序
实训要求:运行界面如图8-23所示,当单击鼠标移入按钮时,按钮上文字的字体变为“华文行楷”,字号为17,如图8-24所示;当鼠标移出按钮时,文字恢复原来的样式。
图8-23鼠标移出按钮 图8-24鼠标移入按钮
23
敬请指正
$$