一般憎况下,在运行VB程序时,窗口总有可能会被其它程序的窗口所覆盖。如何在自己的应用程序中实现TopMost类型的窗口呢?我们可以通过调用Windows API函数SetWindowPos来实现。
一、SetWindowPos函数介绍
SetWindowPos函数功能是将一个窗口在三维空间中移动,利用它,你可以改变一个窗口的位置,甚至可以在Z轴上改变(Z轴决定了一个窗口和其它窗口的前后关系),你还可以改变窗口的尺寸。为了实现TopMost类型的窗口,我们只需调用该函数,将窗口放在所有窗口的前面并永远保持在最前面即可。要想在VB中使用SetWindowPos函数,必须在程序的代码模块中进行如下的函数声明:
Declare Function SetwindowPos Lib "user32.dll" (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
SetWindowPos函数各个参数的含义见表1。
表1 SetWindowPos函数的参数解释
| 参数名 | 参数含义 |
| hwnd | 要移动的窗口的句柄(可以用窗体的hwnd属性) |
| hWndInsertAfter | 关于如何在Z轴上放置窗口的标记(具体见表2) |
| x | 相当于窗口的Left属性 |
| y | 相当于窗口的Top属性 |
| cx | 相当于窗口的Right属性 |
| cy | 相当于窗口的Bottom属性 |
| wFlags | 关于如何移动窗口的标记(具体见表3) |

