FoxPro/Visual FoxPro - Necesito cerrar una ventana

 
Vista:

Necesito cerrar una ventana

Publicado por cartoon (4 intervenciones) el 21/02/2001 11:05:28
Necesito cerrar una ventana que no es de fox, he intentado con _wclose de foxtools.fll, pero me da un error 'API ha generado una excepción', previamente habíamos declarado wclose y hecho el SET a foxtools. La referencia de la ventana que quiero cerrar es correcta, ya que si podía maximizar antes de cerrarla. Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Necesito cerrar una ventana

Publicado por Oscar Pallarozo (38 intervenciones) el 21/02/2001 23:23:01
Bueno, estimado amigo ya te encontraste con la necesidad de utilizar las API de windows, personalmente te recomendaria que investiguez sobre el tema, en la seccion cursos de esta web encontraras un tema muy interesante para que te ayudes Programación en Windows 32bits en el SubTema C/Visual C.

Por lo pronte te envio un ejemplo que esta en Visual Basic no tengo disponible la traduccion a VFP pera te puede srvir de referencia.

Podemos usar las funciones FindWindow y PostMessage para encontrar una ventana y cerrarla.

En el ejemplo veremos cóm cerrar una ventana que tenga como título "Calculadora".

Declaramos en un formulario :

Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Declare Function PostMessage Lib "user32" Alias _
"PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long

Public Const WM_CLOSE = &H10

Y para encontrar la ventana y cerrarla :

Dim winHwnd As Long
Dim RetVal As Long
winHwnd = FindWindow(vbNullString, "Calculadora")
Debug.Print winHwnd
If winHwnd 0 Then
    RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&)
    If RetVal = 0 Then
        MsgBox "Error enviando mensaje."
    End If
Else
    MsgBox "La Calculadora no está abierta."
End If

Estamos empleando el nombre de la ventana para encontrarla,
pero esto no siempre es posible ya que éste puede variar.
Lo ideal puede ser buscarla por el nombre de
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Necesito cerrar una ventana

Publicado por cartoon (4 intervenciones) el 22/02/2001 18:30:10
Muchas gracias, seguí investigando y lo conseguí precisamente con FindWindow y PostMessage, la sintaxis es algo distinta. Muchas gracias por la ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar