Página 2 de 2

Como impedir resize da dialog?

Enviado: 14 Fev 2023 11:59
por JoséQuintas
Alarme falso.

Código: Selecionar todos

STATIC FUNCTION FixSize( oDlg )

   LOCAL aPos := hwg_GetWindowRect( oDlg:Handle )

   WITH OBJECT oDlg
      IF :nWidth != aPos[ 3 ] - aPos[ 1 ] .OR. :nHeight != aPos[ 4 ] - aPos[ 2 ]
         hwg_MsgInfo( ;
            Str( :nTop ) + Str( :nHeight ) + hb_Eol() + ;
            Str( :nLeft ) + ", " + Str( :nWidth ) + hb_Eol() + ;
            Str( aPos[ 2 ] ) + Str( aPos[ 4 ] ) + "(" + Str( aPos[ 4 ] - aPos[ 2 ] ) + ")" + hb_Eol() + ;
            Str( aPos[ 1 ] ) + Str( aPos[ 3 ] ) + "(" + Str( aPos[ 3 ] - aPos[ 1 ] ) + ")" )
      ENDIF
   ENDWITH

   RETURN .T.
Este seria o correto, e o resultado é sempre igual.

Durante e depois do redimensionamento não se tem mais o tamanho original.

Como impedir resize da dialog?

Enviado: 14 Fev 2023 13:34
por Itamar M. Lins Jr.
Olá!
Durante e depois do redimensionamento não se tem mais o tamanho original.
Não estou entendendo.
Da forma que passei, não pode mexer no tamanho.
Basta olhar também nos fontes das mensagens hwg_MsgStop(), hwg_MsgInfo()

Saudações,
Itamar M. Lins Jr.

Como impedir resize da dialog?

Enviado: 14 Fev 2023 14:27
por Fernando queiroz

Código: Selecionar todos

INIT DIALOG oDlg TITLE "COMPRAS" ;   
		ICON HIcon():Addresource('SGC_ICON')  ;
		AT 0, 0 SIZE 1024,590 ;
		STYLE  WS_VISIBLE + WS_SYSMENU + WS_MINIMIZEBOX + WS_MAXIMIZEBOX + WS_CAPTION + WS_TABSTOP CLIPPER  NOEXIT NOEXITESC NOCLOSABLE;
		ON INIT {|| ::_ITENS_onInitPedido( oDlg, cAcao) };
		BACKCOLOR 16777215
eu uso assim , nao entendi o porque da forma que voce esta usando

Como impedir resize da dialog?

Enviado: 14 Fev 2023 14:35
por JoséQuintas
Entraram as outras mensagens, e deu a entender que não funcionava.

Código: Selecionar todos

      STYLE WS_OVERLAPPED + WS_VISIBLE + WS_SYSMENU + WS_CAPTION + WS_TABSTOP ;
Assim não deixa mexer.

Como impedir resize da dialog?

Enviado: 14 Fev 2023 14:53
por Itamar M. Lins Jr.
Olá!
eu uso assim , nao entendi o porque da forma que voce esta usando
STYLE WS_VISIBLE + WS_SYSMENU + WS_MINIMIZEBOX + WS_MAXIMIZEBOX + WS_CAPTION + WS_TABSTOP
Dessa forma a janela pode ser alterado o tamanho.

Saudações,
Itamar M. Lins Jr.

Como impedir resize da dialog?

Enviado: 14 Fev 2023 16:21
por Fernando queiroz

Código: Selecionar todos

	INIT DIALOG oDlg TITLE "PRODUTOS"  ;
			ICON HIcon():Addresource('SGC_ICON')  ;
			AT 0, 0 SIZE 1024,612 STYLE WS_DLGFRAME + WS_SYSMENU + DS_CENTER ; 
			ON INIT {|| oBrowse1:aArray := ::MANUTENCAO_CARREGA( "ORDER BY produtos.DESPRO" ) , ;
			            oBrowse1:REFRESH(), ;
			            ::MANUTENCAO_onDlgInit( oDlg ), ;
						oDlg:oPage1:SetTab(1), ;
						oDlg:oPage1:ChangePage(1) } ;
			BACKCOLOR 16777215
ficou resolvido assim e eu uso CLIPPER NOEXIT NOEXITESC NOCLOSABLE onde se torna necessário

ex: STYLE WS_DLGFRAME + WS_SYSMENU + DS_CENTER CLIPPER NOEXIT NOEXITESC NOCLOSABLE

Como impedir resize da dialog?

Enviado: 14 Fev 2023 17:28
por JoséQuintas
DLG_FRAME

A janela tem uma borda de um estilo normalmente usado com caixas de diálogo. Uma janela com este estilo não pode ter uma barra de título.

Como impedir resize da dialog?

Enviado: 14 Fev 2023 17:40
por JoséQuintas
hwgui.png
Só não bateu a altura da janela.

provavelmente Harbour deixa o título de fora pra calcular o tamanho, e hwgui não.