如何让窗口始终在最前面?

  • 来源: 互联网 作者: rocket   2008-03-18/09:34
  • 调用一个API函数SetWindowPos可实现此功能。

    首先添加一个公用模块,将下面的代码放到模块的声明段中。

    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 HWND_TOPMOST = -1
    Public Const SWP_NOMOVE = &H2
    Public Const SWP_NOSIZE = &H1
    Public Const SWP_NOZORDER = &H8

    将下面的子程序放到模块中

    Public Sub SetFormTopmost(TheForm As Form)

    SetWindowPos TheForm.hwnd, HWND_TOPMOST, 0, 0, 0, 0, _
    SWP_NOZORDER + SWP_NOMOVE + SWP_NOSIZE

    End Sub

    最后,通过调用该子程序设置你想要放置的窗体。例如,你想将窗体frmMyForm放在最前面,代码如下:

    SetFormTopmost frmMyForm.


    请注意,在VB的API查看器中将SWP_NOZORDER设成&H4,正确值就为&H8。要了解更多此函数的信息,可访问下面的网址:http://www.microsoft.com/msdn/sdk/platforms/doc/sdk/win32/func/src/f84_2.htm

    查看SetWindowPos的详细用法


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多