发布时间 : 星期日 文章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,非零表示成功,零表示失败