none
Trazer um form para frente de todos RRS feed

  • Pergunta

  • Olá, em uma aplicação MDI no vb6 tem um formulários que as vezes quando abro ele ele fica atrás de outros que já estão abertos e gostaria de saber de trazer ele para a frente, como posso fazer isso.

    Obrigado.

    segunda-feira, 17 de setembro de 2012 10:44

Respostas

  • Olá Edmar

    Não sei dizer se funciona porque há muito tempo não mexo com VB6, mas tente o código abaixo que achei na NET:

    Coloque em um módulo o código abaixo

    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
    Function AlwaysOnTop(FrmID As Form, ByVal OnTop As Boolean) As Boolean
        Rem --- Deixa o form sempre no topo das demais janelas abertas no Windows ---
        Const SWP_NOMOVE = 2
        Const SWP_NOSIZE = 1
        Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
        Const HWND_TOPMOST = -1
        Const HWND_NOTOPMOST = -2
        If OnTop = True Then
            AlwaysOnTop = SetWindowPos(FrmID.hWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)
        Else
            AlwaysOnTop = SetWindowPos(FrmID.hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS)
        End If
    End Function

    No form que quer deixar na frente coloque o codigo abaixo:

    Private Sub Form_Load()
        Call AlwaysOnTop(Me, True)
    End Sub

    Att.,

    Jeimes Ribeiro

    "Caso a resposta seja útil, marque como resposta."

    segunda-feira, 17 de setembro de 2012 11:03