SendMessage(Me.ActiveControl.hwnd, WM_CUT, 0, 0)
m_Paste.Clicked
SendMessage(Me.ActiveControl.hwnd, WM_PASTE, 0, 0)
这个技巧能够用于任何实现handle方法,并能够响应WM_CUT、WM_COPY和
WM_PASTE消息的控件。还应该实现错误处理,以处理不带handle方法的控件。
7、隐藏/显示开始菜单
Function long FindWindow (string lpClassName, string lpWindowName ) Library \
注释:寻找窗口列表中第一个符合指定条件的顶级窗口
注释:lpClassName指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,注释:表示接收任何类
注释:lpWindowName指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;注释:或设为零,表示接收任何窗口标题
Function long FindWindowEx (long hWnd1 ,long hWnd2, string lpsz1 , string lpsz2 ) Library \注释:在窗口列表中寻找与指定条件相符的第一个子窗口 注释:hWnd1在其中查找子的父窗口
注释:hWnd2从这个窗口后开始查找。这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。如设为零,表示从第一个子窗口开始搜索 Function long ShowWindow(long hwnd , long nCmdShow ) Library \注释:控制窗口的可见性
注释:hwnd窗口句柄,要向这个窗口应用由nCmdShow指定的命令 注释:nCmdShow为窗口指定可视性方面的一个命令 实现代码:cb_1.clicked: long Handle ,FindClass string ls_temp setnull(ls_temp)
FindClass = FindWindow(\
Handle = FindWindowEx(FindClass, 0, \ShowWindow(Handle, 0)//隐藏开始菜单 cb_2.clicked:
long Handle , FindClass
FindClass = FindWindow(\
Handle = FindWindowEx(FindClass, 0, \ShowWindow(Handle, 1)//显示开始菜单
8、起用和禁止ctrl-alt-del
Function long SystemParametersInfo (long uAction , long uParam, Ref any lpvParam, long fuWinIni ) Library \\
注释:允许获取和设置数量众多的windows系统参数 注释:uAction指定要设置的参数
Constant long SPI_SCREENSAVERRUNNING = 97 实现代码:起用ctrl-alt-del: integer ret As Integer boolean pOld
ret = SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, pOld, 0) 禁止ctrl-alt-del: integer ret boolean pOld
ret = SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, pOld, 0)
9、隐藏和显示系统托盘 //注释:隐藏系统托盘
long FindClass, Handle string ls_temp setnull(ls_temp)
FindClass = FindWindow(\
Handle = FindWindowEx(FindClass, 0, \ShowWindow(Handle, 0) //显示系统托盘
//注释:隐藏系统托盘 long FindClass, Handle string ls_temp setnull(ls_temp)
FindClass = FindWindow(\
Handle = FindWindowEx(FindClass, 0, \ShowWindow(Handle, 1)
10、显示/隐藏任务栏
long FindClass, FindClass2 , Parent, Handle string ls_temp setnull(ls_temp)
FindClass = FindWindow(\
FindClass2 = FindWindowEx(FindClass, 0, \Parent = FindWindowEx(FindClass2, 0, \Handle = FindWindowEx(Parent, 0, \ShowWindow(Handle, 0)//显示任务栏
long FindClass, FindClass2 , Parent, Handle string ls_temp setnull(ls_temp)
FindClass = FindWindow(\
FindClass2 = FindWindowEx(FindClass, 0, \Parent = FindWindowEx(FindClass2, 0, \Handle = FindWindowEx(Parent, 0, \
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