Desabilitar "X" da window\Dialog

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

Moderador: Moderadores

ICO
Usuário Nível 1
Usuário Nível 1
Mensagens: 45
Registrado em: 01 Ago 2007 15:59
Localização: Corumba - MS

Desabilitar "X" da window\Dialog

Mensagem por ICO »

Boa Tarde Pessoal..
Vi um tópico aqui falando do Buttonx.C para desabilitar o "X" das dialogs, compilei junto com meus PRGs e não sei como utiliza-lo, mesmo tranformando o buttonx.C em buttonx.OBJ não funciona.. alguém poderia me dar uma luz.. :xau

desde já obrigado..
Luiz Arruda-Corumba - MS
FiveWin 9.04
[x]Harbour
PellesC
xDev
BCC
Ws

[blue]Retorne avisando se a Dica Funcionou[/blue]

email: ico.corumba@gmail.com
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Bem-vindo ao fórum. :)

O tal BUTTONX, aliás, precursor da biblioteca WAPI (seção Clipper), cujo fonte foi feito por mim, é um programa executável stand-alone. Se você não adaptá-lo convenientemente para o Xharbour, não será possível utilizá-lo, mesmo geando seu objeto.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Bem vindo ao forum..

Se vc linkar a GTWVW pode usar a função abaixo:

Código: Selecionar todos

WVW_NoClose()
Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
ICO
Usuário Nível 1
Usuário Nível 1
Mensagens: 45
Registrado em: 01 Ago 2007 15:59
Localização: Corumba - MS

Mensagem por ICO »

Primeiramente obrigado pelas respostas..

Não sei se postei no forum certo, se não me desculpem.

Maligno, Realmente o código é seu, quer dizer que não tem jeito usando FW for xharbour ???
:'(


Sygecom, onde encontro esta GTWVW ??? se eu compila-la junto com meus PRGs vai rodar normalmente ?? pois uso FW 2.40 xharbour 0.99.60 com xDev para compilar..

:xau
Luiz Arruda-Corumba - MS
FiveWin 9.04
[x]Harbour
PellesC
xDev
BCC
Ws

[blue]Retorne avisando se a Dica Funcionou[/blue]

email: ico.corumba@gmail.com
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Maligno, Realmente o código é seu, quer dizer que não tem jeito usando FW for xharbour ???
Da forma como está até tem, mas você terá de executar o BUTTONX.EXE que acompanha o ZIP, a exemplo do que hoje fazemos com a LIB WAPI. Aliás, não lembro desta versão do BUTTONX, mas a versão que fiz na WAPI não só pode desabilitar o botão X, como também fazer sumir o ítem de menu que encerra a sessão DOS.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Vc não disse que usava a Fivewin..., mas tente usar junto ...não sei se vai dar problema...só testando mesmo...a LIB se encontra nas CONTRIB ...compile ela com a versão do xharbour que vc esta usando !!!

http://sourceforge.net/project/download ... irror=ufpr

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
ICO
Usuário Nível 1
Usuário Nível 1
Mensagens: 45
Registrado em: 01 Ago 2007 15:59
Localização: Corumba - MS

Mensagem por ICO »

Maligno escreveu:
Maligno, Realmente o código é seu, quer dizer que não tem jeito usando FW for xharbour ???
Da forma como está até tem, mas você terá de executar o BUTTONX.EXE que acompanha o ZIP, a exemplo do que hoje fazemos com a LIB WAPI. Aliás, não lembro desta versão do BUTTONX, mas a versão que fiz na WAPI não só pode desabilitar o botão X, como também fazer sumir o ítem de menu que encerra a sessão DOS.
Bem então este buttonx.exe que baixei serve para trabalhar em modo console ?? porque dentro da minha aplicação não funcionou.
depois de compilar junto com meus prgs, devo colocar alguma coisa como
buttonx="off"
ownd:bottunx:="off" como vi num exemplo num site ??

Obrigado..
Luiz Arruda-Corumba - MS
FiveWin 9.04
[x]Harbour
PellesC
xDev
BCC
Ws

[blue]Retorne avisando se a Dica Funcionou[/blue]

email: ico.corumba@gmail.com
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Não. O programa BUTTONX.EXE é um programa de linha de comando e serve para desabilitar o botão X das janelas. Execute-o por linha de comando no DOS e veja o resultado. A sintaxe é BUTTONX OFF para desabilitar e BUTTONX ON para reabilitar. Se você pode executar essa linha de comando pelo Xharbour, você pode fazê-lo funcionar perfeitamente. Mas eu só quis dizer que o BUTTONX da biblioteca WAPI tem mais recursos. Só. Talvez a biblioteca indicada pelo Leonardo tenha essas características também.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
ICO
Usuário Nível 1
Usuário Nível 1
Mensagens: 45
Registrado em: 01 Ago 2007 15:59
Localização: Corumba - MS

Mensagem por ICO »

Pessoal..
Obrigado pelas respostas..
mas não consegui. faltam includes como hbole.h, por enquanto vou tentar outra solução como por um válid ao tentar fechas a window e dialogs, depois retorno a esta empreitada...

Obrigado..

Abraços
Luiz Arruda-Corumba - MS
FiveWin 9.04
[x]Harbour
PellesC
xDev
BCC
Ws

[blue]Retorne avisando se a Dica Funcionou[/blue]

email: ico.corumba@gmail.com
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
ICO
Usuário Nível 1
Usuário Nível 1
Mensagens: 45
Registrado em: 01 Ago 2007 15:59
Localização: Corumba - MS

Mensagem por ICO »

sygecom escreveu:http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=3729

Tche, veja se ajuda....

Abraços
Eu já tinha visto aquele tópico... Algun tempo tempo atrás alguém lá que não lembro quem era estava querendo isto também, agora vou reativar aquele tópico e ver se ja acharam a solução.. qq coisa volto aqui e reporto..

mesmo assim obrigadão...

Abraços..
Luiz Arruda-Corumba - MS
FiveWin 9.04
[x]Harbour
PellesC
xDev
BCC
Ws

[blue]Retorne avisando se a Dica Funcionou[/blue]

email: ico.corumba@gmail.com
ICO
Usuário Nível 1
Usuário Nível 1
Mensagens: 45
Registrado em: 01 Ago 2007 15:59
Localização: Corumba - MS

Mensagem por ICO »

Se alguém se interessar pela dica ...

Solução Postada by Maracelo Michels do Forum www.Fivewin.com.br

lsai:=.f.

Define Dialog odlg...

define buttom obtsai ... action(lsai:=.t.,odlg:end())

activate dialog odlg valid lsai

Desabilita mesmo o "X" de uma dialog..
Luiz Arruda-Corumba - MS
FiveWin 9.04
[x]Harbour
PellesC
xDev
BCC
Ws

[blue]Retorne avisando se a Dica Funcionou[/blue]

email: ico.corumba@gmail.com
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

ICO escreveu:lsai:=.f.
Define Dialog odlg...
define buttom obtsai ... action(lsai:=.t.,odlg:end())
activate dialog odlg valid lsai
Não existe uma outra maneira mais simples? Valid com .f. em janela me parece gambiarra... Porque já não coloca algo do tipo:

Código: Selecionar todos

valid if( msgYesNo("sair?"), .t., .f. )
Assim pelo menos o botão funciona.

Na mingui basta definir a janela com a clausula NOSYSMENU, que tira todo aquele menu do lado ESQUERDO da janela, além dos botões padrões.

Isto é importante, verifique se deste modo citado com valid, num da pra dar um ALT+ESPAÇO (ou clicar no ícone da janela) e fechar mesmo assim. Se der num resolve acho né?


Falou!
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
ICO
Usuário Nível 1
Usuário Nível 1
Mensagens: 45
Registrado em: 01 Ago 2007 15:59
Localização: Corumba - MS

Mensagem por ICO »

Stanis Luksys escreveu:
ICO escreveu:lsai:=.f.
Define Dialog odlg...
define buttom obtsai ... action(lsai:=.t.,odlg:end())
activate dialog odlg valid lsai
Não existe uma outra maneira mais simples? Valid com .f. em janela me parece gambiarra... Porque já não coloca algo do tipo:

Código: Selecionar todos

valid if( msgYesNo("sair?"), .t., .f. )
Assim pelo menos o botão funciona.

Na mingui basta definir a janela com a clausula NOSYSMENU, que tira todo aquele menu do lado ESQUERDO da janela, além dos botões padrões.

Isto é importante, verifique se deste modo citado com valid, num da pra dar um ALT+ESPAÇO (ou clicar no ícone da janela) e fechar mesmo assim. Se der num resolve acho né?


Falou!
Ola Stanis, Tudo Bem ??

Veja bem, a intenção é esta mesma, desabilitar o botão (nao funcionar)..
Outra coisa, ainda estou fazendo testes com a minigui, por enquanto estou usando somente FiveWin for xHarbour, e se eu desabilitar o NOSYSMENU, some também o icone da aplicação, assim como das dialogs.. Repito isso FiveWin e xHarbour.. Não sei com a minigui..

Abraços..
Luiz Arruda-Corumba - MS
FiveWin 9.04
[x]Harbour
PellesC
xDev
BCC
Ws

[blue]Retorne avisando se a Dica Funcionou[/blue]

email: ico.corumba@gmail.com
MARCELOG
Usuário Nível 4
Usuário Nível 4
Mensagens: 546
Registrado em: 15 Mar 2005 16:54
Localização: Divinópolis/MG

Mensagem por MARCELOG »

Na sua seção de funções/ procedures em C, adicione a função abaixo,
e chame X_NOCLOSE() para desabilitar o botão "X".

Código: Selecionar todos

HB_FUNC( X_NOCLOSE )
{
   USHORT usWinNum = WVW_WHICH_WINDOW;
   HMENU  hMenu = GetSystemMenu(s_pWindows[usWinNum]->hWnd, FALSE);

   if (hMenu)
   {
      DeleteMenu( hMenu, SC_CLOSE, MF_BYCOMMAND );
      DrawMenuBar( s_pWindows[usWinNum]->hWnd );
   }
}
MarceloG

Ps: adaptação da wvw_noclose() da gtwvw.
Atenção: não consegui baixar a gtwvw para substituir as constantes indicadas na função que provavelmente estão em um arquivo .ch ou .h dos sources.

Talvez o Malígno ou o Stanis, que são feras em C, possam adaptar mais rapidamente.

Acho que trata-se do handle da janela que, se for 0, refere-se a janela atual.
Editado pela última vez por Pablo César em 24 Mai 2012 20:20, em um total de 5 vezes.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Responder