VB调用API函数使窗口保持在最上层

VB调用API函数使窗口保持在最上层,第1张

VB调用API函数使窗口保持在最上层,第2张

我们看到有些应用无论窗口是否活动都将窗口保持在顶层,比如常见的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代码中。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » VB调用API函数使窗口保持在最上层

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情