Inibir fechamento de janela

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

LUCAS MACHADO
Usuário Nível 1
Usuário Nível 1
Mensagens: 25
Registrado em: 31 Mai 2013 11:43
Localização: RIO DE JANEIRO/RJ

Inibir fechamento de janela

Mensagem por LUCAS MACHADO »

Tenho uma aplicação que executa um procedimento demorado que não deve ser interrompido pelo fechamento da janela (X). Alguém sabe me dizer como inibir este fechamento da janela? Uso Xharbour e minigui. Obrigado
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Inibir fechamento de janela

Mensagem por lugab »

DesabilitaX()

Código: Selecionar todos

#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"
#include "conio.h"
#include "winbase.h"



HB_FUNC ( DesabilitaX )    // DESABILITA O X da janela
{
  HMENU MenuH = GetSystemMenu(GetForegroundWindow(),FALSE);

  DeleteMenu(MenuH,SC_CLOSE,MF_BYCOMMAND);
}

#pragma ENDDUMP

lugab
LUCAS MACHADO
Usuário Nível 1
Usuário Nível 1
Mensagens: 25
Registrado em: 31 Mai 2013 11:43
Localização: RIO DE JANEIRO/RJ

Inibir fechamento de janela

Mensagem por LUCAS MACHADO »

Boa tarde Lugab, obrigado pela resposta, só agora estou respondendo pois estive viajando.

Não consegui implementar sua solução. Como falei uso xHarbour e Minigui.
Você poderia explicitar melhor? Sou iniciante em xHarbour e estou convertendo um sistema em Clipper5.2
Na aplicação, abro uma janela, preencho alguns parâmetros e clico num botão EXECUTAR, A partir deste momento não posso deixar o usuário fechar esta janela para encerrar a função.
Obrigado
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Inibir fechamento de janela

Mensagem por cjp »

Lucas, eu faço assim (sugestão colhida neste fórum):

Código: Selecionar todos

REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
function main()
         HB_SETCODEPAGE('PT850')
         HB_LANGSELECT('PT')
         TIRA_X()

#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 ( TIRA_X )    // DESABILITA O X da janela

{
  HMENU MenuH = GetSystemMenu(GetForegroundWindow(),FALSE);

  DeleteMenu(MenuH,SC_CLOSE,MF_BYCOMMAND);
}

#pragma ENDDUMP
Mas é bom observar que isso impede o fechamento da janela no X (canto superior direito da janela), mas não impede o fechamento clicando com o botão direito na barra de tarefas. Isto eu não sei como fazer.
Inacio de Carvalho Neto
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Inibir fechamento de janela

Mensagem por Toledo »

LUCAS MACHADO escreveu:Como falei uso xHarbour e Minigui
Se esta sua dúvida é referente MiniGui modo gráfico, suas dúvidas devem ser postadas na seção MiniGui. Pois a solução do problema pode ser diferente do que é feito no Harbour.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Responder