TopMost这个词也许你很陌生,但具有TopMost窗口的软件你应该早就接触过,如Office97、网络吸血鬼、IE等。所谓TopMost窗口是指哪些始终出现在桌面的最前方且不会被其它窗口覆盖的窗口,如网络吸血鬼中的下载图标。
一般憎况下,在运行VB程序时,窗口总有可能会被其它程序的窗口所覆盖。如何在自己的应用程序中实现TopMost类型的窗口呢?我们可以通过调用WindowsAPI函数SetWindowPos来实现。
一、SetWindowPos函数介绍SetWindowPos函数功能是将一个窗口在三维空间中移动,利用它,你可以改变一个窗口的位置,甚至可以在Z轴上改变(Z轴决定了一个窗口和其它窗口的前后关系),你还可以改变窗口的尺寸。为了实现TopMost类型的窗口,我们只需调用该函数,将窗口放在所有窗口的前面并永远保持在最前面即可。要想在VB中使用SetWindowPos函数,必须在程序的代码模块中进行如下的函数声明:
DeclareFunctionSetwindowPosLib"user32.dll"(ByValhwndAsLong,ByValhWndInsertAfterAsLong,ByValxAsLong,ByValyAsLong,ByValcxAsLong,ByValcyAsLong,ByValwFlagsasLong)AsLong
SetWindowPos函数各个参数的含义见表1。
表1SetWindowPos函数的参数解释-align="middle"width="182">参数名->-align="middle"width="334">参数含义->-align="middle"width="182">hwnd->-align="middle"width="334">要移动的窗口的句柄(可以用窗体的hwnd属性)->-align="middle"width="182">hWndInsertAfter->-align="middle"width="334">关于如何在Z轴上放置窗口的标记(具体见表2)->-align="middle"width="182">x->-align="middle"width="334">相当于窗口的Left属性->-align="middle"width="182">y->-align="middle"width="334">相当于窗口的Top属性->-align="middle"width="182">cx->-align="middle"width="334">相当于窗口的Right属性->-align="middle"width="182">cy->-align="middle"width="334">相当于窗口的Bottom属性->-align="middle"width="182">wFlags->-align="middle"width="334">关于如何移动窗口的标记(具体见表3)->