PB调用API函数技巧三则 林志航 2001年 48期 在PowerBuilder 7.0(以下简称为PB 7.0)编程中,我们经常会遇到一些PB 7.0本身不能直接解决的问题,例如:使PB7.0窗口总在最上层;在PB7.0中如何获得当前目录;在PB7.0中实现Windows任务栏的显示或者隐藏。这就需要通过调用Win32 API函数来解决了,开发者使用外部函数之前,必须先对其进行定义,外部函数定义的语法如下:   {Access_Level}FUNCTION ReturnDataType FunctionName({REF}{DataType1 Arg1,…,DataTypeN ArgN})LIBRARY LibraryName   以上各个参数的含义:Access:访问级别,可以是Pubilc、Private、Protected,缺省为Public;ReturnDataType:返回数据类型;FunctionName:函数名,存储在DLL中的函数名;REF:变量通过引用方式传递;DataType:参数的数据类型;Arg:参数名;LibraryName:动态链接库名。   技巧1:使窗口总在最上层   Function Long SetWindowPos(Long hwnd,Long ord,Long x,Long y,Long dx,Long dy,Long uflag)Library“user32”   在上句代码中,参数1为要顶层显示的窗口句柄,参数2为指定显示的层次,参数3、4、5、6为窗口的位置和大小,参数7为附加的选项。在窗口的OPEN事件中加入函数调用:   SetWindowPos(Handle(This),-1,0,0,0,0,3)   此句中,参数2取-1表示在最顶层显示窗口,参数7取3表示窗口的大小和位置均保持不变。   技巧2:如何获得当前目录   Function Ulong GetCurrentDirectoryA(Ulong buflen,ref string dir) Library “kernel32.dll”   参数1用来指定字符缓冲区的长度,参数2为接收当前目录的字符缓冲区,ref表示地址引用。其调用过程为:   String curdir //定义字符串   curdir=Space(256)//为字符缓冲区开辟内存空间   GetCurrentDirectoryA(256,curdir)   Messagebox(“Current Directory”,curdir)   技巧3:实现Windows任务栏的显示或者隐藏   Function long FindWindowEx(long ph,long ch,ref string cnref,string wn)Library “mpr.dll”   任务栏是一个特殊的窗口,窗口类型为ShellTrayWnd,得到它的窗口句柄,只能用FindWindowEx函数来取得:   Function long ShowWindow(Long hWnd,Long nCmdShow) Library “user32”   用ShowWindow来显示或隐藏窗口,其第二个参数为0表示隐藏,为5表示显示:   handle=FindWindowEx(0,0,“Shell-TrayWnd”,wn) //wn为空串   ShowWindow(handle,0) //隐藏任务栏   以上技巧只是PB 7.0中调用API函数的一些小小例子,希望能给你带来一点帮助。