pb+api实际应用 联系客服

发布时间 : 星期日 文章pb+api实际应用更新完毕开始阅读

ShowWindow(Handle, 1)//隐藏任务栏

11、怎样确定系统是否安装了声卡?

//API函数声明:

Function long waveOutGetNumDevs () Library \ 代码如下: integer i

i = waveOutGetNumDevs() If i > 0 Then

messagebox(\声卡检测\你的系统可以播放声音!\ Else

messagebox(\声卡检测\你的系统不能播放声音!\ End If

12、powerbuilder中如何使用未安装的字体?

Function long AddFontResource(string

lpFileName) Library \Function long RemoveFontResource (string lpFileName ) Library \//增加字体: long lResult

lResult = AddFontResource(\

// 删除字体: long lResult

lResult = RemoveFontResource(\

13、半透明窗体(win2000特有API)

Function long SetLayeredWindowAttributes (long hwnd , long crKey , long bAlpha , long dwFlags ) Library \注释:具体可以使用的常量及其用法

Constant long LWA_ALPHA=2 //注释:表示把窗体设置成半透明样式 Constant long LWA_COLORKEY=1 // 注释:表示不显示窗体中的透明色 实现代码:

Function long GetWindowLong (long hwnd , long nIndex ) Library \

Function long SetWindowLong (long hwnd, long nIndex , long dwNewLong ) Library \

Function long SetLayeredWindowAttributes (long hwnd , long crKey , long bAlpha , long dwFlags ) Library \Constant long WS_EX_LAYERED = 32768 Constant long GWL_EXSTYLE =-20 Constant long LWA_ALPHA =2 Constant long LWA_COLORKEY =1

窗口w_example的open事件: long rtn

rtn = GetWindowLong(handle(this), GWL_EXSTYLE) //注释:取的窗口原先的样式

rtn = rtn + WS_EX_LAYERED //注释:使窗体添加上新的样式WS_EX_LAYERED SetWindowLong(handle(thios), GWL_EXSTYLE, rtn )// 注释:把新的样式赋给窗体

SetLayeredWindowAttributes(handle(this), 0, 192, LWA_ALPHA) //注释:把窗体设置成半透明样式,第二个参数表示透明程度 //注释:取值范围0--255,为0时就是一个全透明的窗体了

14、使窗体右上角的X按钮失效 外部函数声明

Function long GetSystemMenu(long hwnd, long bRevert) Library \//函数功能

//取得指定窗口的系统菜单的句柄。在powerbuilder,“系统菜单”的正式名称为“控制菜单”,即单击窗口左上角的控制框时出现的菜单 //返回值

//Long,如执行成功,返回系统菜单的句柄;零意味着出错。如bRevert设为TRUE,也会返回零(简单的恢复原始的系统菜单) //备注

//在powerbuilder里使用:系统菜单会向窗口发送一条WM_SYSCOMMAND消息,而不是WM_COMMAND消息 //参数表

//hwnd ----------- Long,窗口的句柄

//bRevert -------- Long,如设为TRUE,表示接收原始的系统菜单 Function long RemoveMenu(long hMenu, long nPosition, long wFlags) Library \//函数功能

//删除指定的菜单条目。如删除的条目属于一个弹出式菜单,那么这个函数不会

同时删除弹出式菜单。首先应该用GetSubMenu函数取得弹出式菜单的句柄,再在以后将其删除 //返回值

//Long,非零表示成功,零表示失败。会设置GetLastError //备注

//强烈建议大家使用powerbuilder菜单的visible属性从菜单中删除条目,而不要用这个函数,否则会造成指定菜单中其他菜单条目的visible属性对错误的菜单条目产生影响 //参数表

//hMenu ---------- Long,菜单的句柄

//nPosition ------ Long,欲改变的菜单条目的标识符。如在wFlags参数中指定了MF_BYCOMMAND,这个参数就代表欲改变的菜单条目的命令ID。如设置的是 MF_BYPOSITION,这个参数就代表菜单条目在菜单中的位置(第一个条目的位置为零)

//wFlags --------- Long,常数MF_BYCOMMAND或MF_BYPOSITION,取决于nPosition参数 实现代码:

w_example窗口的open事件: long R,mymenu

MyMenu = GetSystemMenu(handle(this), 0) RemoveMenu(MyMenu, 96, R)

//程序中用到了两个API函数GetSystemMenu、RemoveMenu,其中GetSystemMenu函数用来得到系统菜单的句柄,RemoveMenu用来删除指定的菜单条目,我们先来看看这个函数的声明和参数:

Function long GetSystemMenu(long hwnd, long bRevert) Library \Function long RemoveMenu(long hMenu, long nPosition, long wFlags) Library \

其中各GetSystemMenu参数的意义如下表: 参数 意义

hwnd Long 系统菜单所在窗口的句柄

bRevert Long 如设为TRUE,表示恢复原始的系统菜单

返回值 Long 如执行成功,返回系统菜单的句柄;零意味着出错。如bRevert设为TRUE,也会返回零(简单的恢复原始的系统菜单) 而RemoveMenu参数的意义如下表: 参数 意义

hMenu Long 菜单的句柄

nPosition Long 欲改变的菜单条目的标识符。如在wFlags参数中指定了MF_BYCOMMAND,这个参数就代表欲改变的菜单条目的命令ID。如设置的是

MF_BYPOSITION,这个参数就代表菜单条目在菜单中的位置(第一个条目的位置为零) wFlags Long 常数MF_BYCOMMAND=0或MF_BYPOSITION=1024,取决于nPosition参数

返回值 Long,非零表示成功,零表示失败