'声明函数: Declare Function SetWindowPos Lib "user32" (ByVal h%, ByVal hb%, ByVal x%, ByVal y%, ByVal cx%,ByVal cy%,ByVal f%) As Integer 
Global Const SWP_NOMOVE = 2 
Global Const SWP_NOSIZE = 1 
Global Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE 
Global Const HWND_TOPMOST = -1 
Global Const HWND_NOTOPMOST = -2 '把窗体放在最前面: 
res% = SetWindowPos (Form1.hWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS) '如果res%=0, 就产生错误 '使窗体恢复普通模式:res% = SetWindowPos (Form1.hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS)

解决方案 »

  1.   

    用SetWindowsPos()API函数:private Declare Function SetWindowPos
     Lib "user32" (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
      

  2.   

    hWnd变元是窗口的句柄;x,y是窗口的左上角的坐标;cx、cy是窗口宽度和高度;hWndInsertAfter变元是窗口清单中hWnd窗口前面的窗口句柄,有四个可选值: 序号 可 选 值 作 用
    1 HWND_BOTTOM 把窗口放在窗口清单的底部
    2 HWND_TOP 把窗口放在窗口清单的字符顺序的顶部
    3 HWND_TOPMOST 把窗口放在窗口清单的顶部
    4 HWND_NOTOPMOST 把窗口放在窗口清单的顶部,最上层窗口之下---- WFlags变元为整型值,有八个可选值: 序号 可  选  值 作   用
    1 SWP_DRAWFRAME 在窗口周围画一个方框
    2 SWP_HIDEWINDOW 隐藏窗口
    3 SWP_NOACTIVATE  不激活窗口
    4 SWP_NOMOVE 保持窗口当前位置
    5 SWP_NOREDRAW 窗口不自动重画
    6 SWP_NOSIZE  保持窗口当前尺寸
    7 SWP_NOZORDER 保持窗口在窗口清单中的当前位置
    8 SWP_SHOWWINDOW 显示窗口  下面的例子程序Test演示了对函数中的以上7个变元作正确的选择后,应用程序运行后窗口总可保持在最上层,程序清单如下: Option Explicit
    Private Declare Function SetWindowPos
    Lib "user32" (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
    Private Const HWND_TOPMOST = -1
    Private Const SWP_SHOWWINDOWS = &H40Private Sub Form_Load()
    Dim retValue As Long
    retValue = SetWindowPos(Me.hwnd,
     HWND_TOPMOST, Me.CurrentX, _
     Me.CurrentY, 300, 300, SWP_SHOWWINDOWS)
    End Sub