VB调用API函数使窗口保持在最上层
我们看到有些应用无论窗口是否活动都将窗口保持在顶层,比如常见的Microsoft Word文件打开编辑搜索窗口。在VB开发中,可以通过调用SetWindowsPos()API函数来实现该功能。该函数声明如下:
私有声明函数SetWindowPos
Lib " user 32 "(ByVal hwnd As Long,_
ByVal hWndInsertAfter As Long,ByVal
x As Long,ByVal y As Long,_
ByVal cx As Long,ByVal cy As Long,
ByVal wFlags As Long)
HWnd参数是窗口的句柄;x,y是窗口左上角的坐标;Cx,cy是窗口的宽度和高度;HWndInsertAfter参数是窗口列表中hWnd窗口前面的窗口句柄。有四个可选值:
可以使用序列号的可选值
1 HWND_BOTTOM将窗口放在窗口列表的底部
2 HWND_将窗口放在窗口列表字母顺序的顶部
3 HWND_MOST将窗口放在窗口列表的顶部
4 HWND_NOMOST将窗口放在窗口列表的顶部,在顶部窗口的下面。
WFlags参数是一个整数值,有八个可选值:
序号可选值可作为
1 SWP_DRAWFRAME在窗口周围画一个框
2 SWP_HIDEWINDOW隐藏窗口
3 SWP_NOACTIVATE不激活窗口
4 SWP_NOMOVE保持窗口当前位置
5 SWP _ nor redraw窗口不会自动重画
6 SWP_NOSIZE保持窗口当前大小
7 SWP_NOZORDER保持当前
下面的示例程序测试演示了在正确选择函数中的上述七个参数后,在应用程序运行后,窗口可以始终保持在顶层。程序列表如下:
option Explicit
Private Declare Function SetWindowPos
Lib " user 32 "(ByVal HWND As Long,_
ByVal hWndInsertAfter As Long,
ByVal x As Long,ByVal y As Long,_
ByVal cx As Long,ByVal cy As Long,
ByVal wFlags As As Long)Long
Private Const HWND _ MOST =-1
Private Const SWP _ show windows = & H4
private Sub Form _ Load()
Dim retValue As Long
retValue = SetWindowPos(Me . HWND,
HWND_MOST,Me。当前,_
我。CurrentY,300,300,SWP _显示窗口)
End Sub
注意:写函数声明的时候,整个函数声明一定要写在一行,不能提。一般来说,函数声明是从系统自动获取的。方法是从VB的外接程序管理中启动“API浏览”程序,在“API浏览”程序中找到需要的函数声明,然后复制到VB代码中。
0条评论