Maximizar uma Janela Externa

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

Moderador: Moderadores

marcosgambeta
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 16 Jun 2005 22:53

Maximizar uma Janela Externa

Mensagem por marcosgambeta »

Outra possibilidade para testar:

Depois de obter o handle da janela, executar esta sequencia:

Código: Selecionar todos

ShowWindow(hWnd, SW_SHOW);
ShowWindow(hWnd, SW_RESTORE);
SetForegroundWindow(hWnd); 
Atenciosamente,
Marcos Antonio Gambeta
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Maximizar uma Janela Externa

Mensagem por asimoes »

Marcos,

A janela Quick Report é essa.
2018-03-20 12_15_14-.png
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Maximizar uma Janela Externa

Mensagem por asimoes »

Marcos, não funcionou, coisas do windows.

A janela fica assim:
2018-03-20 12_17_51-.png
2018-03-20 12_17_51-.png (11.42 KiB) Exibido 1742 vezes
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
marcosgambeta
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 16 Jun 2005 22:53

Maximizar uma Janela Externa

Mensagem por marcosgambeta »

O nome que você usa para localizar a janela com FindWindow é este ?

"Report Preview :"
Atenciosamente,
Marcos Antonio Gambeta
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Maximizar uma Janela Externa

Mensagem por asimoes »

Não é "Relatorio" esse é no nome da janela que chama o quickreport,
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Maximizar uma Janela Externa

Mensagem por asimoes »

Marcos,

No nome do executável que também é a janela.

É Relatorio porque eu consigo fechar a janela:

Código: Selecionar todos

  hWnd := FindWindow( 'Relatorio' )
   
   IF hWnd > 0
      hwg_Postmessage(hWnd, WM_CLOSE, 0, 0 )
   ENDIF

2018-03-20 13_14_32-Report Preview _.png
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Maximizar uma Janela Externa

Mensagem por asimoes »

Acho que assim dá pra ver nome da janela
2018-03-20 13_34_19-.png
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
marcosgambeta
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 16 Jun 2005 22:53

Maximizar uma Janela Externa

Mensagem por marcosgambeta »

Poderia testar esta rotina e informar o resultado ?

Use assim: lRet := HB_ShowWindow( "Relatorio", "Report Preview :")

Código: Selecionar todos

#pragma BEGINDUMP

#include <windows.h>
#include "hbapi.h"

HB_FUNC( HB_SHOWWINDOW )
{
  HWND hWnd = FindWindow( NULL, hb_parc( 1 ) );

  if( hWnd )
  {
    HWND hWndChild = FindWindowEx( hWnd, NULL, NULL, hb_parc( 2 ) );

    if( hWndChild )
    {
      PostMessage(hWndChild, WM_SYSCOMMAND, SC_RESTORE, 0);
      hb_retl( 1 );
    }
    else
    {
      hb_retl( 0 );
    }
  }
  else
  {
    hb_retl( 0 );
  }
}

#pragma ENDDUMP
Atenciosamente,
Marcos Antonio Gambeta
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Maximizar uma Janela Externa

Mensagem por asimoes »

Marcos,

Retornou .F.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Maximizar uma Janela Externa

Mensagem por JoséQuintas »

Código: Selecionar todos

wapi_ShowWindow( wapi_FindWindow( 0, "Relatorio" ), SW_RESTORE )
wapi_ShowWindow( wapi_FindWindow( 0, "Relatorio" ), SW_MAXIMIZE )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Maximizar uma Janela Externa

Mensagem por JoséQuintas »

Complemento:

Pelo menos num teste em WVG funcionou....

Código: Selecionar todos

-------------test.prg
REQUEST HB_CODEPAGE_PTISO

PROCEDURE Main

   LOCAL oControl, aOptions, cOption, nRow


   Set( _SET_CODEPAGE, "PTISO" )
   SetMode(33,90)
   SetColor("W/B")
   CLS
   wapi_ShowWindow( wapi_FindWindow( 0, "test" ), SW_RESTORE )
   wapi_ShowWindow( wapi_FindWindow( 0, "test" ), SW_MAXIMIZE )
   //LoadAllFont()
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Maximizar uma Janela Externa

Mensagem por JoséQuintas »

E mais um complemento.... rs

Funcionou o Maximizar janela... não que tenha funcionado pra WVG, que ficou com a janela doidinha, maximizada mas sem atualização... rs
Então tem mais essa também...
wvg.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Maximizar uma Janela Externa

Mensagem por asimoes »

Quintas,

Fiz um teste aqui não funcionou

cApp := 'Gerenciador de Tarefas'

wapi_ShowWindow( wapi_FindWindow( 0, cApp), SW_RESTORE )
wapi_ShowWindow( wapi_FindWindow( 0, cApp ), SW_MAXIMIZE )

Assim funciona

hb_ShowWindow(cApp)

Código: Selecionar todos

#pragma BEGINDUMP

#include "windows.h"
#include "hbapi.h"

HB_FUNC( HB_SHOWWINDOW )
{
   HWND hWnd = FindWindow( NULL, hb_parc( 1 ) );
   SetForegroundWindow( hWnd );
   SendMessage( hWnd, WM_SYSCOMMAND, SC_RESTORE, 0 );
}
#pragma ENDDUMP
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Maximizar uma Janela Externa

Mensagem por JoséQuintas »

No fonte que coloquei está executando o comando do Windows pra maximizar uma janela.

No fonte que colocou está enviando a mensagem de maximizar para a janela, que acabará sendo processada pelo aplicativo Delphi.

Se imaginar que pode ser um controle activex, o aplicativo repassa ao activex, enquanto o comando direto do Windows pode ser recusado.
Mas é só suposição minha, não sei se seria isso mesmo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder