|
|
|
|
|
Dicas
|
|
Visual Basic (Forms/MDI)
|
|
|
Título da Dica: Esperar janela ser fechada para continuar executar
|
|
|
|
Postada em 18/7/2005 por Rochª
proglucrocha@bol.com.br
Esta rotina espera que uma janela seja fechada para que o fluxo continue a execucao.
..... form2.show Aguarda_Janela ("Form2") ..... so continua a execucao apos o fechamento da janela form2. Observe que a janela nao é "form2.show 1" ela pode ser uma mdichild.
Private Const GW_CHILD = 5 Private Const GW_HWNDNEXT = 2 Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal aint As Long) As Long Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long Private Declare Function GetDesktopWindow Lib "user32" () As Long
' Rotina para esperar que uma outra janela termino para que o fluxo continue a ser executado Sub Aguarda_Janela(StrJanela As String) On Error Resume Next Dim AntHwnd As Long, JHwnd As Long, TamNome As Long Dim NomeJanela As String AntHwnd = GetDesktopWindow() JHwnd = GetWindow(AntHwnd, GW_CHILD) Do Until JHwnd = 0 NomeJanela = Space$(255) TamNome = GetWindowText(JHwnd, NomeJanela, 128) NomeJanela = Left$(Trim$(NomeJanela), TamNome) If UCase$(Trim$(NomeJanela)) = UCase$(Trim$(StrJanela)) Then Exit Do Else AntHwnd = JHwnd JHwnd = GetWindow(AntHwnd, GW_HWNDNEXT) End If Loop Do Until TamNome = 0 TamNome = GetWindowText(JHwnd, NomeJanela, 128) DoEvents Loop If Err Then Err.Clear End Sub
|
|
|
|
|