Page 1 of 3

Deshabilitar la "X" de cerrar el programa.

Posted: Thu Aug 07, 2014 10:42 am
by abinfra
Agradecería vuestra ayuda en lo siguiente:
A fin de evitar salir del programa estando re-editando, quisiera deshabilitar la "X" de cerrar el programa (botón rojo de la esquina superior derecha de la ventana).

Gracias por anticipados y saludos cordiales.

Re: Deshabilitar la "X" de cerrar el programa.

Posted: Thu Aug 07, 2014 11:06 am
by gdp
Hola

Debes agregar la clausula Nosysmenu, en el define del window.
EJ :
DEFINE WINDOW Rango AT 0,0 WIDTH 520 HEIGHT 280 TITLE "Acumulado de Operaciones" ICON nil MODAL NOSYSMENU NOSIZE FONT "Arial" SIZE 9

Gerardo

Re: Deshabilitar la "X" de cerrar el programa.

Posted: Thu Aug 07, 2014 11:23 am
by abinfra
Gracias Gerardo.

Perdona mi ignorancia, yo solo he programado hasta ahora en Clipper, donde tendría que poner la instrucción que me comentas?.

Saludos cordiales.


gdp wrote:Hola

Debes agregar la clausula Nosysmenu, en el define del window.
EJ :
DEFINE WINDOW Rango AT 0,0 WIDTH 520 HEIGHT 280 TITLE "Acumulado de Operaciones" ICON nil MODAL NOSYSMENU NOSIZE FONT "Arial" SIZE 9

Gerardo

Deshabilitar la "X" de cerrar el programa.

Posted: Thu Aug 07, 2014 11:46 am
by Pablo César
Hola Antonio,

Esta atribuicion que precisas, es para una aplicacion GUI o CONSOLE ?

Si es para GUI, puedes disponibilizar tu código principal ?

Re: Deshabilitar la "X" de cerrar el programa.

Posted: Thu Aug 07, 2014 1:37 pm
by danielmaximiliano
abinfra wrote:Gracias Gerardo.

Perdona mi ignorancia, yo solo he programado hasta ahora en Clipper
Hola : como todos nos olvidamos de leer la Referencia de HMG, no necesariamente es ser ignorante sino un poco descuidado.

yo tambien pase las mismas a pesar de venir de otra interfaz grafica (VFP) y pasarme a algo libre para recuperar un viejo codigo clipper que funciona desde hace 15 años.

Re: Deshabilitar la "X" de cerrar el programa.

Posted: Thu Aug 07, 2014 1:51 pm
by abinfra
Hola Pablo César.

Es para CONSOLE. Son unos .prg que hice con Clipper y ahora los adaptando, compilando y enlazando con HMG.

Saludos cordiales.



P.D.- x Daniel, tienes razón, no cabe excusa.

Pablo César wrote:Hola Antonio,

Esta atribuicion que precisas, es para una aplicacion GUI o CONSOLE ?

Si es para GUI, puedes disponibilizar tu código principal ?

Re: Deshabilitar la "X" de cerrar el programa.

Posted: Thu Aug 07, 2014 2:52 pm
by gdp
Hola,

Mi error, esa solución que te di es para ventanas graficas.
En el caso que tu quieras trabajar en modo consola, la única alternativa, si tienes W XP , es maximizar la pantalla,
si tienes W Vista, o superior, no conozco solución a este tema.

Saludos

Gerardo

Re: Deshabilitar la "X" de cerrar el programa.

Posted: Thu Aug 07, 2014 3:10 pm
by danielmaximiliano
Another alternative might be to run it in "Full screen mode"
Adding DWORD value key of name "FullScreen" and value 1
at HKEY_CURRENT_USER\Console, causes cmd.exe to open up full screen.
(Changing that value to 0, causes cmd.exe to open up normally)

In Minigui

Code: Select all

#pragma BEGINDUMP

#include <windows.h>
#include "hbapi.h"

/******
*
*       Blocking window close button
*
*/

HB_FUNC( DISABLECLOSEBUTTON )
{
  HWND hWnd;
  HMENU hMenu; 
  
  hWnd = (HWND) hb_parnl( 1 );
  hMenu = GetSystemMenu( hWnd, FALSE );
   
  if (hMenu != 0)
  { 
	DeleteMenu( hMenu, SC_CLOSE, MF_BYCOMMAND);
  } 

}

#pragma ENDDUMP

Re: Deshabilitar la "X" de cerrar el programa.

Posted: Thu Aug 07, 2014 3:48 pm
by abinfra
Gracias Daniel.

¿Se puede compilar y enlazar con HBMK2?
¿Hay que poner este código dentro de la Función Main()?

Saludos cordiales.


danielmaximiliano wrote:Another alternative might be to run it in "Full screen mode"
Adding DWORD value key of name "FullScreen" and value 1
at HKEY_CURRENT_USER\Console, causes cmd.exe to open up full screen.
(Changing that value to 0, causes cmd.exe to open up normally)

In Minigui

Code: Select all

#pragma BEGINDUMP

#include <windows.h>
#include "hbapi.h"

/******
*
*       Blocking window close button
*
*/

HB_FUNC( DISABLECLOSEBUTTON )
{
  HWND hWnd;
  HMENU hMenu; 
  
  hWnd = (HWND) hb_parnl( 1 );
  hMenu = GetSystemMenu( hWnd, FALSE );
   
  if (hMenu != 0)
  { 
	DeleteMenu( hMenu, SC_CLOSE, MF_BYCOMMAND);
  } 

}

#pragma ENDDUMP

Re: Deshabilitar la "X" de cerrar el programa.

Posted: Thu Aug 07, 2014 5:38 pm
by Javier Tovar
Hola abinfra,

Este código lo pones al final de tu prg donde quieres hacer referencia a esta función, y la llamas en "ON INIT DISABLECLOSEBUTTON" de tu Ventana.

Espero que me haya dado a entender.

Saludos