Tamanho da Janela com wvw. Alguém já conseguiu?
Moderador: Moderadores
-
carlos_dornelas
- Usuário Nível 3

- Mensagens: 400
- Registrado em: 25 Ago 2004 21:54
Tamanho da Janela com wvw. Alguém já conseguiu?
Pessoal,
Alguém já conseguiu uma boa combinação com as funcoes abaixo que permita uma tela cheia (ou quase cheia) e que exiba os caracteres, como por exemplo o chr(16)? Já me bati, fiz vários testes. Com a fonte "terminal" consegui a exibição correta dos caracteres, mas a tela fica bem pequena. E o codepage, além de 255, existem outras configurações?
Já pesquisei em posts anteriores, mas não consegui resolver esse problema. Se alguém puder me dar uma luz, fico muito grato mesmo.
[]s
Antonio Carlos
wvw_setcodepage(,255)
wvw_setfont...
setmode(24,80)
Alguém já conseguiu uma boa combinação com as funcoes abaixo que permita uma tela cheia (ou quase cheia) e que exiba os caracteres, como por exemplo o chr(16)? Já me bati, fiz vários testes. Com a fonte "terminal" consegui a exibição correta dos caracteres, mas a tela fica bem pequena. E o codepage, além de 255, existem outras configurações?
Já pesquisei em posts anteriores, mas não consegui resolver esse problema. Se alguém puder me dar uma luz, fico muito grato mesmo.
[]s
Antonio Carlos
wvw_setcodepage(,255)
wvw_setfont...
setmode(24,80)
Para maximizar você pode utilizar esse código (adaptado de maximize.prg)
No sistema da empresa eu uso a janela maximizada somente pra vizualizar os relatórios, com ajuste de fonte manual para simular um zoom.
Quanto ao tamanho da fonte você pode deixar uma opção para o usuário da estação escolher (usando wvw_choosefont), porque depende tambem da rezolução da tela.
Código: Selecionar todos
* this dimension will be used when user presses RESTORE button
static s_nNormalMaxrow := 24
static s_nNormalMaxcol := 79
procedure main
wvw_enablemaximize(0, .t.)
wvw_maximize(0)
wait
function WVW_SIZE(nWinNum, hWnd, message, wParam, lParam)
* this function is called by gtwvw AFTER the size is changed
* WARNING: screen repainting is not performed completely by gtwvw at this point of call
local cScreen
local lNeedReset := .f., ;
maxsavedscrrow, maxsavedscrcol
if !WVW_SIZE_READY()
* program is not ready to handle window resizing
* (or this function is currently running)
return NIL
endif
if nWinNum<>0
* only care about Main Window
return NIL
endif
* avoid reentrance
WVW_SIZE_READY(.f.)
do case
case wParam == 2 //SIZE_MAXIMIZED
//alert("MAXIMIZE")
* reset is required only if we are changing size
lNeedReset := maxcol() <> wvw_maxmaxcol();
.or. maxrow() <> wvw_maxmaxrow()
if lNeedReset
maxsavedscrrow := min(min(s_nNormalMaxrow, wvw_maxmaxrow()),maxrow())
maxsavedscrcol := min(min(s_nNormalMaxcol, wvw_maxmaxcol()),maxcol())
cScreen := savescreen(0,0,maxsavedscrrow, maxsavedscrcol)
if setmode(wvw_maxmaxrow()+1, wvw_maxmaxcol()+1) //adjust maxrow() & maxcol()
restscreen(0,0,maxsavedscrrow, maxsavedscrcol, cScreen)
endif
//diminfo() //updatescr()
endif
case wParam == 0 //SIZE_RESTORED
//alert("RESTORE")
lNeedReset := maxcol() <> s_nNormalMaxcol .or.;
maxrow() <> s_nNormalMaxrow
if lNeedReset
maxsavedscrrow := min(s_nNormalMaxrow, maxrow())
maxsavedscrcol := min(s_nNormalMaxcol, maxcol())
cScreen := savescreen(0,0,maxsavedscrrow, maxsavedscrcol)
if setmode(s_nNormalMaxrow+1,s_nNormalMaxcol+1)
restscreen(0,0,maxsavedscrrow, maxsavedscrcol, cScreen)
endif
//diminfo() //updatescr()
endif
otherwise
* do nothing
endcase
* allow next call
WVW_SIZE_READY(.t.)
return NIL
#pragma BEGINDUMP
#include "hbapi.h"
HB_FUNC( WVW_SIZE_READY )
{
BOOL bIsReady;
static BOOL s_bIsReady = FALSE;
bIsReady = s_bIsReady;
if (ISLOG(1))
{
s_bIsReady = hb_parl(1);
}
hb_retl(bIsReady);
}
#pragma ENDDUMPQuanto ao tamanho da fonte você pode deixar uma opção para o usuário da estação escolher (usando wvw_choosefont), porque depende tambem da rezolução da tela.
"Ninguém se engane a si mesmo; se alguém dentre vós se tem por sábio neste mundo, faça-se louco para se tornar sábio." (I Coríntios 3:18)
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
xHarbour | Gtwvw | HwGui | DBF+CDX | mySQL | Genesis IDE
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
xHarbour | Gtwvw | HwGui | DBF+CDX | mySQL | Genesis IDE
-
carlos_dornelas
- Usuário Nível 3

- Mensagens: 400
- Registrado em: 25 Ago 2004 21:54
Amigos , estou com um problema relacionado a funções
Não consigo compilar o sistema com essa funções da mensagem de erro como se elas não existicem o extranho é que estou usando a GTWVW e as demais funções funcionam perfeitamente o que teria que fazer para que essa funções funcionem 
unresolved external
:f
Código: Selecionar todos
wvw_size()
wvw_size_ready() unresolved external
:f
C:\Xharbour\Xdev\Fw\VSX
Ola amigos , tem uma coisa que não estou entendendo, quando mostro uma mensagem em maxroll() , quando esta maximizado fica um exaço abaixo dessa linha como se houve-se um alinha 25 ou seja , se minha mensagem esta setada para maxrol() pq ela não fica no final "rente a borda"
seria por acaso o expaço para uma barra de status ?? Pois bem se for , como colocar esta barra ?? :)Pos
seria por acaso o expaço para uma barra de status ?? Pois bem se for , como colocar esta barra ?? :)Pos
C:\Xharbour\Xdev\Fw\VSX
sygecom escreveu:Tche, vc esta usando tudo na mesma Janela ou esta usando Multijanela ? se estiver usando tudo nas mesma janela, de um olhada se vc esta usando algum SETMODE() para limitar o tamanho da tela....
Leo , o problema esta na maximização da tela , eu estou usando o exemplo do SAMPLE que aconpanha no c:\XHarbour\contrib\maximize
que no caso acabei de verificar e esta dando o mesmo problema , veja que a maximizando a ultima linha não vai até o rodapé "rente a borda" penso que aquele espaço não possa ser preenchido pois não seria nele que uma barra "visual" com mensagens de "status", deveria ser inserida
:)Pos
C:\Xharbour\Xdev\Fw\VSX
-
prodasys
- Usuário Nível 1

- Mensagens: 12
- Registrado em: 21 Ago 2007 18:28
- Localização: Itapetininga-SP
Código: Selecionar todos
/************************************
* PROGRAMA : GT.PRG
************************************/
# INCLUDE "GTINFO.CH"
static s_nNormalMaxrow := 25
static s_nNormalMaxcol := 84
FUNCTION GT()
WVW_SIZE_READY(.T.)
WVW_SETMAINCOORD(.T.)
IF GTINFO(GTI_DESKTOPWIDTH) = 1024
WVW_SETFONT(,"LUCIDA CONSOLE",25,12, 400)
SETCOLOR('G+/N')
@ WVW_MAXMAXROW(), 0 TO 25,WVW_MAXMAXCOL()
WVW_SBCREATE()
ELSEIF GTINFO(GTI_DESKTOPWIDTH) = 800
WVW_SETFONT(,"LUCIDA CONSOLE", 18, 10, 400)
SETCOLOR('G+/N')
@ 25, 0 TO 25,WVW_MAXMAXCOL()+1
WVW_SBCREATE()
END IF
WVW_SETCODEPAGE(,255)
SETMODE(WVW_MAXMAXROW()+1,WVW_MAXMAXCOL()+1)
wvw_enablemaximize(0, .f.)
wvw_maximize(0)
Function WVW_SIZE(nWinNum, hWnd, message, wParam, lParam)
local cScreen
local lNeedReset := .f., ;
maxsavedscrrow, maxsavedscrcol
if !WVW_SIZE_READY()
return NIL
endif
if nWinNum<>0
return NIL
endif
WVW_SIZE_READY(.f.)
do case
case wParam == 2
lNeedReset := maxcol() <> wvw_maxmaxcol();
.or. maxrow() <> wvw_maxmaxrow()
if lNeedReset
maxsavedscrrow := min(min(s_nNormalMaxrow, wvw_maxmaxrow()),maxrow())
maxsavedscrcol := min(min(s_nNormalMaxcol, wvw_maxmaxcol()),maxcol())
cScreen := savescreen(0,0,maxsavedscrrow, maxsavedscrcol)
if setmode(wvw_maxmaxrow()+1, wvw_maxmaxcol()+1) //adjust maxrow() & maxcol()
restscreen(0,0,maxsavedscrrow, maxsavedscrcol, cScreen)
endif
endif
case wParam == 0
lNeedReset := maxcol() <> s_nNormalMaxcol .or.;
maxrow() <> s_nNormalMaxrow
if lNeedReset
maxsavedscrrow := min(s_nNormalMaxrow, maxrow())
maxsavedscrcol := min(s_nNormalMaxcol, maxcol())
cScreen := savescreen(0,0,maxsavedscrrow, maxsavedscrcol)
if setmode(s_nNormalMaxrow+1,s_nNormalMaxcol+1)
restscreen(0,0,maxsavedscrrow, maxsavedscrcol, cScreen)
endif
endif
otherwise
endcase
WVW_SIZE_READY(.t.)
return NIL
#pragma BEGINDUMP
#include "hbapi.h"
HB_FUNC( WVW_SIZE_READY )
{
BOOL bIsReady;
static BOOL s_bIsReady = FALSE;
bIsReady = s_bIsReady;
if (ISLOG(1))
{
s_bIsReady = hb_parl(1);
}
hb_retl(bIsReady);
}
#pragma ENDDUMP
Editado pela última vez por Pablo César em 24 Mai 2012 20:14, em um total de 1 vez.
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
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
Paulo Penalva


