函数】
SetWindowLong【操作系统】
Win9X:Yes
WinNT:Yes【声明】
SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long【说明】  在窗口结构中为指定的窗口设置信息 【返回值】  Long,指定数据的前一个值 【其它】
【参数表】
  hwnd -----------  Long,欲为其取得信息的窗口的句柄  nIndex ---------  Long,请参考GetWindowLong函数的nIndex参数的说明  dwNewLong ------  Long,由nIndex指定的窗口信息的新值
--------------------------------------------------------------------
【函数】
GetWindowLong【操作系统】
Win9X:Yes
WinNT:Yes【声明】
GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long【说明】  从指定窗口的结构中取得信息 【返回值】  Long,由nIndex决定。零表示出错。会设置GetLastError 【其它】
【参数表】
  hwnd -----------  Long,欲为其获取信息的窗口的句柄  nIndex ---------  Long,欲取回的信息,可以是下述任何一个常数:
  GWL_EXSTYLE
  扩展窗口样式
  GWL_STYLE
  窗口样式
  GWL_WNDPROC
  该窗口的窗口函数的地址
  GWL_HINSTANCE
  拥有窗口的实例的句柄
  GWL_HWNDPARENT
  该窗口之父的句柄。不要用SetWindowWord来改变这个值
  GWL_ID
  对话框中一个子窗口的标识符
  GWL_USERDATA
  含义由应用程序规定
  DWL_DLGPROC
  这个窗口的对话框函数地址
  DWL_MSGRESULT
  在对话框函数中处理的一条消息返回的值
  DWL_USER
  含义由应用程序规定
--------------------------------------------------------------------
Made by Thirdapple's Studio(http://3rdapple.51.net/)

解决方案 »

  1.   

    【函数】
    SetWindowPos【操作系统】
    Win9X:Yes
    WinNT:Yes【声明】
    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【说明】  这个函数能为窗口指定一个新位置和状态。它也可改变窗口在内部窗口列表中的位置。该函数与DeferWindowPos函数相似,只是它的作用是立即表现出来的(在vb里使用:针对vb窗体,如它们在win32下屏蔽或最小化,则需重设最顶部状态。如有必要,请用一个子类处理模块来重设最顶部状态 【返回值】  Long,非零表示成功,零表示失败。会设置GetLastError 【其它】  窗口成为最顶级窗口后,它下属的所有窗口也会进入最顶级。一旦将其设为非最顶级,则它的所有下属和物主窗口也会转为非最顶级。Z序列用垂直于屏幕的一根假想Z轴量化这种从顶部到底部排列的窗口顺序【参数表】
      hwnd -----------  Long,欲定位的窗口  hWndInsertAfter -  Long,窗口句柄。在窗口列表中,窗口hwnd会置于这个窗口句柄的后面。也可能选用下述值之一:
      HWND_BOTTOM
      将窗口置于窗口列表底部
      HWND_TOP
      将窗口置于Z序列的顶部;Z序列代表在分级结构中,窗口针对一个给定级别的窗口显示的顺序
      HWND_TOPMOST
      将窗口置于列表顶部,并位于任何最顶部窗口的前面
      HWND_NOTOPMOST
      将窗口置于列表顶部,并位于任何最顶部窗口的后面  x --------------  Long,窗口新的x坐标。如hwnd是一个子窗口,则x用父窗口的客户区坐标表示  y --------------  Long,窗口新的y坐标。如hwnd是一个子窗口,则y用父窗口的客户区坐标表示  cx -------------  Long,指定新的窗口宽度  cy -------------  Long,指定新的窗口高度  wFlags ---------  Long,包含了旗标的一个整数
      SWP_DRAWFRAME
      围绕窗口画一个框
      SWP_HIDEWINDOW
      隐藏窗口
      SWP_NOACTIVATE
      不激活窗口
      SWP_NOMOVE
      保持当前位置(x和y设定将被忽略)
      SWP_NOREDRAW
      窗口不自动重画
      SWP_NOSIZE
      保持当前大小(cx和cy会被忽略)
      SWP_NOZORDER
      保持窗口在列表的当前位置(hWndInsertAfter将被忽略)
      SWP_SHOWWINDOW
      显示窗口
      SWP_FRAMECHANGED
      强迫一条WM_NCCALCSIZE消息进入窗口,即使窗口的大小没有改变
      

  2.   

    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
    Public Const conHwndTopmost = -1
    Public Const conHwndNoTopmost = -2
    Public Const conSwpNoActivate = &H10
    Public Const conSwpShowWindow = &H40Public Sub OnTop(hwnd As Long)'put hWnd  always on top
    'example:
    '    Sub Form1_Load()
    '    OnTop hWnd
    '    End SubCall SetWindowPos _
    (hwnd, -1, 0, 0, 0, 0, &H2 Or &H1)'NOTE: before showing additional forms,
    'use OffTop to return the Main or calling
    'form to normal.Ex:
                        'Sub mnuAbout_Click()
                        '
                        'OffTop hWnd
                        'frmAbout.Show vbModal
                        'OnTop hWnd
                        '
                        'End Sub
    End SubPublic Sub OffTop(hwnd As Long)'take hWnd OFF always on top
    'example:
    '    Sub Form1_Load()
    '    OffTop hWnd
    '    End SubCall SetWindowPos _
    (hwnd, -2, 0, 0, 0, 0, &H2 Or &H1)End Sub
      

  3.   

    你用SetWindowPos吗?把里面第二个(忘记了也许是第一个)的1改为0就可以
      

  4.   

    刚才说错了
    我不管它们是什么意思。但我就是会用:'==============================
    '设置窗口总在最前面用到
    ' SetWindowPos Me.hwnd, -1, 0, 0, 0, 0, 3   '设置
    ' SetWindowPos Me.hwnd, -2, 0, 0, 0, 0, 3   '取消
    '==============================
     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