Quitar el desktop en VFP3 y Fox 2.x

Por Javier Resendiz (México)

Uno de los problemas más comunes que se suelen plantear los desarrolladores que llegan a FoxPro es la forma de quitar el desktop. Para hacer esa operación se han ideado multiples formas. En VFP 5.0 no existe este problema pues siempre puedes crear formularios SDI pero en VFP 3.0 y Fox 2.x es un problema recurrente. No obstante, si acudes al API de windows el problema queda resuelto y aquí os adjunto el código:

1.- la propiedad desktop de las formas, la pongo en .T.

2.- en el procedimiento de entrada de mi aplicación (o forma), tengo algo como lo siguiente:

* Declaro las funciones del API de Windows 
* para usarlas en mi programa

DECLARE integer FindWindow IN Win32api ;
integer, string
DECLARE Integer ShowWindow IN Win32api;
 Integer, Integer

*!* Defino algunas constantes
SW_MAXIMIZE = 3
SW_SHOWNORMAL = 1
SW_SHOWMINIMIZED = 2
SW_SHOWGONE = 0

* Define un apuntador NULL para pasarlo a 
* funciones
NullPointer = 0

* Declaro una variable que contendrá el 
* handler de la ventana principal de Fox.
PUBLIC FoxHWND

* Localizo el handler de la ventana 
* principal de Fox
FoxHWND = FindWindow(NullPointer,;
 _SCREEN.Caption)

* Y le digo que desaparezca.
FoxGone = ShowWindow(FoxHWND, ;
SW_SHOWGONE)

Con el código anterior, solo queda mi forma principal sobre el escritorio de Windows y adiós a la ventana principal de Fox. La ventaja de esto, es que puedo mostrar la ventana cuando me convenga de acuerdo con la lógica de mi programa.

© Copyrights 1998 by FoxPress, All rights reserved
FoxPress, Marzo 1998