Cerrar ventana de ayuda
Posted: Tue Jun 19, 2012 7:55 pm
Con la funcion HelpTopic("Clave del tema") abro la ventana de ayuda posicionado en el tema que deseo, ahora bien, como cierro esa ventana desde el sistema que la llamo?
www.FiveTechSoft.com
https://fivetechsupport.com/forums/
Code: Select all | Expand
function CerrarAyudas()
local oWnd
local cTitles := "Aquí colocas el titulo de la ventana de ayudas"
if !empty(cTitles )
oWnd := TWCapture():New( AllTrim( cTitles ) )
Jugar(oWnd)
endIF
return nil
*-----------------------------------------------------------//
static function Jugar(oWnd )
cTitle := oWnd:cTitle
if oWnd:lCaptured
oWnd:End()
endif
return( nil )
Code: Select all | Expand
//=============================================================================
//Cierra ventana exterior
FUNCTION PN_CieVenExt(Titulo)
LOCAL oWndAC
oWndAC:=TWCapture():New(AllTrim(Titulo)) //Toma objeto de la ventana a cerrar segun su titulo
IF oWndAC:lCaptured ; oWndAC:End() ; ENDIF //Si esta abierta, la cierra
RETURN(NIL)
Code: Select all | Expand
#include "Objects.ch"
//============================================================================//
//TWCapture
//----------------------------------------------------------------------------//
// AUTOR.....: Manuel Exp½sito Su rez Soft 4U '2001 //
// e-Mail....: maex14@dipusevilla.es //
// CLASE.....: TWCapture //
// FECHA MOD.: 18/08/2001 //
// VERSION...: 1.00 //
// PROPOSITO.: Captura una ventana abierta por nuestro programa o por otra //
// aplicacion para poder enviarle mensajes como si fuera una //
// ventana mas de nuestro programa. //
// Uso.......: Cerrar ventana de ayuda //
//----------------------------------------------------------------------------//
// DATAS.....: * lCapture tiene un valor logico, .f. si la ventana no se //
// pudo capturar y .t. si si se hizo //
// //
// METODOS...: * New( cTitle ) es el constructor, cTitle es el titulo de una //
// ventana, si se le pasa intentara capturarla y pondra .t. en //
// ::lCapture //
// * WCapture se encarga de buscar la ventana y asignarla a //
// nuestro objeto TWindow. Si la captura podremos interactuar //
// como si fuera una ventana mas de nuestra aplicacion //
// //
// NOTAS.....: TWCapture esta heredada de TWindows por lo que tendremos a //
// nuestra disposicion todas las datas y metodos de esta clase. //
// No distingue entre mayusculas y minuscula pero si se tienen //
// en cuenta los espacios //
//----------------------------------------------------------------------------//
CLASS TWCapture FROM TWindow
DATA lCaptured AS LOGICAL
METHOD New( cTitle ) CONSTRUCTOR
METHOD WCapture( cTitle )
ENDCLASS
//----------------------------------------------------------------------------//
METHOD New( cTitle ) CLASS TWCapture
if( ValType( cTitle ) == "C", ::WCapture( cTitle ), ::lCaptured := .f. )
return( Self )
//----------------------------------------------------------------------------//
METHOD WCapture( cTitle ) CLASS TWCapture
local hWnd := FindWindow( 0, cTitle )
::lCaptured := ( hWnd > 0 )
::hWnd := if( ::lCaptured, hWnd, 0 )
return(::lCaptured)
Code: Select all | Expand
If((hWnd:=FindWindow(,"cTitleOfWnd"))!=0,CloseWindow(hWnd),)
Code: Select all | Expand
CerrarVentana("cTitleOfWnd")
Function CerrarVentana(cTitle)
Return If((hWnd:=FindWindow(,cTitle))!=0,CloseWindow(hWnd),)
Code: Select all | Expand
#define WM_CLOSE 0x0010
Function CerrarVentana(cTitle)
Local hWnd
If(hWnd:=FindWindow(,cTitle))!=0
PostMessage(hWnd,WM_CLOSE)
EndIf
Return Nil
RodolfoRBG wrote:Hola Lailton,
Fijate que despues me di cuenta que tu sugerencia no cierra realmente la ventana de ayuda, solo la minimiza, mientras que TWCapture si la cierra.