Página 1 de 1

Inibir fechamento de janela

Enviado: 11 Mar 2014 19:03
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

Inibir fechamento de janela

Enviado: 11 Mar 2014 21:02
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


Inibir fechamento de janela

Enviado: 14 Abr 2014 16:46
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

Inibir fechamento de janela

Enviado: 15 Abr 2014 00:07
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.

Inibir fechamento de janela

Enviado: 15 Abr 2014 08:34
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,