如何将 form 置于所有界面的最上面,并获得焦点,   是哪个 API  如何用啊???

解决方案 »

  1.   

    Const HWND_TOPMOST = -1
    Const HWND_NOTOPMOST = -2
    Const SWP_NOSIZE = &H1
    Const SWP_NOMOVE = &H2
    Const SWP_NOACTIVATE = &H10
    Const SWP_SHOWWINDOW = &H40
    Private Declare Sub 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)Private Sub Form_Activate()    SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
    End Sub
      

  2.   

    可以通过调用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 
    ---- 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 显示窗口