一、创建一个非可视对象来封装第三方函数库。

单击主工具栏中的user object 图标。在new user object对话框中选取custom类型。

为该对象申明局部的位于mhand.dll文件中的外部函数getfiledatetime。将该对象保存为n_file_functions。

改变w_maintain窗口中的"取文件日期和时间"按钮的clicked事件的代码。

代码如下图所示。其中定义了n_file_functions类型的对象nvo_file_functions。并用create语句创建该对象。然后调用该对象的函数getfiledatetime取得文件名称编辑框中输入的文件的日期和时间。根据该函数的返回值判断是否成功执行。返回值的含义由DLL中的函数确定。

二、解析一个功能完善的非可视用户对象。

下面是一个功能完善的非可视用户对象的例子,封装了与打印相关的大部分功能。

从class10\sr文件夹中导入n_printer和w_pageset两个对象。(请同时导入其它对象以便学习、使用。)

先来使用这两个对象查看实际运行的效果。

改变w_print_preview窗口的"打印设置"按钮的clicked事件代码:

原来在该脚本中调用的是我们自己创建的w_stu_printsetup窗口对象。现在调用w_pageset窗口,该窗口使用了n_printer非可视对象。

下图是w_pageset窗口对象。

下图是程序运行后的效果。

下面来查看w_pageset窗口的相关脚本代码。

"打印设置"按钮的clicked事件,其中使用了n_printer类型的对象lnv_printer。

该对象lnv_printer在该窗口的实例变量中定义。

下面来了解一下n_printer非可视用户对象。

该对象的实例变量:

该对象的局部外部函数定义:

该对象的自定义结构体:

windows系统API函数的参数使用大量的结构体类型,如要在PB中使用必须按相同的结构定义结构体类型。这些API函数使用的结构体的定义可以通过手册或MSDN查看。下图是MSDN中对FILETIME结构的说明:

该对象的自定义函数:

 

三、下面来介绍一下其它的封装windows API函数的非可视对象。

这是封装了图形设备接口函数的n_cst_gdi32对象:

这是封装了internet功能调用的n_cst_wininet对象:

这是封装了windows系统核心功能调用的n_cst_kernerl32对象:

 

返回

 

数据空间