¿Se puede desactivar el botón "X" de cerrar una ve

Post Reply
User avatar
Rafael Clemente
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

¿Se puede desactivar el botón "X" de cerrar una ve

Post 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
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Post 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

João Santos - São Paulo - Brasil
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Post by karinha »

Code: Select all

    ACTIVATE WINDOW oWnd MAXIMIZED                                           ;
             ON INIT( TIRA_X() )
João Santos - São Paulo - Brasil
User avatar
Rafael Clemente
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Post by Rafael Clemente »

Funciona perfectamente. Muchas gracias, João!!!

Rafael
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Rafael,

Tambien podrías usar un VALID en la ventana ó en el diálogo, que impidan que puedan cerrarse
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Rafael Clemente
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Post 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
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Post by joseluisysturiz »

Si usas Pelles C lo puedes hacer desde el diseño del recurso.
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Post 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.
João Santos - São Paulo - Brasil
George
Posts: 710
Joined: Tue Oct 18, 2005 6:49 pm

Post 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
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Post 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.
João Santos - São Paulo - Brasil
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Post 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 ) )
João Santos - São Paulo - Brasil
George
Posts: 710
Joined: Tue Oct 18, 2005 6:49 pm

Post by George »

Gracias karinha!
Post Reply