Page 1 of 1
¿Se puede desactivar el botón "X" de cerrar una ve
Posted: Wed Apr 09, 2008 4:13 pm
by Rafael Clemente
Quisiera desactivar y que aparezca desactivado botón de cerrar ("X") de una ventana pero manteniendo activos el de minimizar y maximizar.
Gracias,
Rafael
Posted: Wed Apr 09, 2008 5:19 pm
by karinha
Code: Select all
SHOWTASKBAR() //habilita
HIDETASKBAR() //desabilita
TIRA_X() // DESABILITA O X da janela
PISCA_EXE() // VAI PISCAR O SEU EXE NA BARRA
#pragma BEGINDUMP
#include "windows.h"
#include "shlobj.h"
#include "hbapi.h"
#include "math.h"
#include "hbvm.h"
#include "hbstack.h"
#include "hbapiitm.h"
#include "hbapigt.h"
HB_FUNC ( SHOWTASKBAR ) //Habilita o botao INICIAR
{
HWND hWnd = FindWindow("Shell_TrayWnd", "");
ShowWindow( hWnd, 1 );
}
HB_FUNC ( HIDETASKBAR ) //Desabilita o botao Iniciar
{
HWND hWnd = FindWindow("Shell_TrayWnd", "");
ShowWindow( hWnd, 0 );
}
HB_FUNC ( PISCA_EXE ) // VAI PISCAR O SEU EXE NA BARRA
{
HWND Handle = GetForegroundWindow();
FlashWindow(Handle,TRUE); // VAI PISCAR O SEU EXE NA BARRA
Sleep(300); // TEMPO DE ESPERA
}
HB_FUNC ( TIRA_X ) // DESABILITA O X da janela
{
HMENU MenuH = GetSystemMenu(GetForegroundWindow(),FALSE);
EnableMenuItem(MenuH,SC_CLOSE,MF_GRAYED);
}
#pragma ENDDUMP
Posted: Wed Apr 09, 2008 5:22 pm
by karinha
Code: Select all
ACTIVATE WINDOW oWnd MAXIMIZED ;
ON INIT( TIRA_X() )
Posted: Wed Apr 09, 2008 5:33 pm
by Rafael Clemente
Funciona perfectamente. Muchas gracias, João!!!
Rafael
Posted: Wed Apr 09, 2008 6:54 pm
by Antonio Linares
Rafael,
Tambien podrías usar un VALID en la ventana ó en el diálogo, que impidan que puedan cerrarse
Posted: Wed Apr 09, 2008 7:04 pm
by Rafael Clemente
Antonio:
Sí; ya lo había probado pero es que la solución de Joao tiene la ventaja de que deja "Disabled" el botón "X", que es lo que yo quería.
Gracias
Rafael
Posted: Wed Apr 09, 2008 8:07 pm
by joseluisysturiz
Si usas Pelles C lo puedes hacer desde el diseño del recurso.
Posted: Wed Apr 09, 2008 8:29 pm
by karinha
joseluisysturiz wrote:Si usas Pelles C lo puedes hacer desde el diseño del recurso.
NO EN LA WINDOW PRINCIPAL.
EN DIALOGOS, SI ÉS POSIBLE INCLUSIVE EN WORKSHOP.
Saludos.
Posted: Thu Apr 10, 2008 6:09 pm
by George
Karinha,
Perfecto!
En el caso mio me interesa el hacer lo contrario de Rafael Clemente. Quisiera dejar activo el boton de cerrar [X]; pero quiero desactivar los botones de Minimizar y Maximizar el Window.
Me podrias indicar como hacerlo?
Saludos,
George
Posted: Thu Apr 10, 2008 6:29 pm
by karinha
George wrote:Karinha,
Perfecto!
En el caso mio me interesa el hacer lo contrario de Rafael Clemente. Quisiera dejar activo el boton de cerrar [X]; pero quiero desactivar los botones de Minimizar y Maximizar el Window.
Me podrias indicar como hacerlo?
Saludos,
George
ESTO, FIVEWIN HACE POR DEFECTO, MIRA LA CLASSE WINDOW.PRG
Saludos.
Posted: Thu Apr 10, 2008 6:36 pm
by karinha
Desculpa mi respuesta, por ejemplo:
debes controlar via STYLE de la window principal
Code: Select all
nStyle = nOr( WS_CLIPCHILDREN,;
If( cBorder == "NONE", WS_POPUP, 0 ),;
If( cBorder == "SINGLE", WS_THICKFRAME, 0 ),;
If( lCaption, WS_CAPTION, 0 ),;
If( lSysMenu .and. lCaption, WS_SYSMENU, 0 ),;
If( lMin .and. lCaption, WS_MINIMIZEBOX, 0 ),;
If( lMax .and. lCaption, WS_MAXIMIZEBOX, 0 ),;
If( lVScroll, WS_VSCROLL, 0 ),;
If( lHScroll, WS_HSCROLL, 0 ) )
Posted: Thu Apr 10, 2008 7:49 pm
by George
Gracias karinha!