如何实现窗口总在最前面(Always on top)
编号:QA000076
建立日期: 1997年11月5日 最后修改日期:1999年11月25日
所属类别:
gwok:
我做了一个显示时钟的form,想让他always on top,但找了好长时间,也没有找到在何处设置。
回答:
实际上Always On Top是借助Windows API的SetWindowPos实现的。
1、首先应该把以下声明放再窗体的声明部分:
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_SHOWWINDOW = &H40
Private Declare Function SetWindowPos Lib _
"user32" Alias "SetWindowPos" (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) As Long
使窗口Always On Top时,可以用下面的语句:
SetWindowPos hWnd, HWND_TOPMOST, 0, 0, 0, 0, _
SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE _
Or SWP_NOSIZE
使窗口取消Always On Top功能,用下面的语句:
SetWindowPos hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, _
SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE _
Or SWP_NOSIZE
此问题由李海回答。
| |
|
|
| |
|
|