topmost这个词也许你很陌生,但具有topmost窗口的软件你应该早就接触过,如office97、网络吸血鬼、ie等。所谓topmost窗口是指哪些始终出现在桌面的最前方且不会被其它窗口覆盖的窗口,如网络吸血鬼中的下载图标。
一般憎况下,在运行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) |
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器