JUDSON Posted April 12, 2013 Report Share Posted April 12, 2013 Galera uso no meu sistema uma tela de venda no padrao 1024 x 768 , mas quando encontro uma resolução maior a tela fica tipo duplicando a imagem DEFINE BRUSH oBrush1 file l_pasta + "frente_guardiao.bmp" DEFINE WINDOW osii60 FROM 0,0 to 1024, 768 ; NO CAPTION ; BORDER NONE ; of ownd_principal ; BRUSH oBrush1 bla bla bla bla ACTIVATE WINDOW osii60 valid f_sii60(,2,2) ON INIT ( sysrefresh() ) a funcao centered ou center nao funciona , alguem pode dar uma dica ? Quote Link to comment Share on other sites More sharing options...
Valdir Posted April 12, 2013 Report Share Posted April 12, 2013 Olá Judson... tente assim antes da sua Activate window: oWnd:Center() um abraço Quote Link to comment Share on other sites More sharing options...
JUDSON Posted April 12, 2013 Author Report Share Posted April 12, 2013 Valdir , obrigado pela dica , mais nao deu certo , estou usando uma resolucao de 1360 x 768 e a que esta na window e de FROM 0,0 to 1024, 768 veja como ficava antes do center http://imageshack.us/photo/my-images/507/antesdocenter.jpg/ e como ficou com o center. http://imageshack.us/photo/my-images/255/depoisdocenter.jpg/ Quote Link to comment Share on other sites More sharing options...
Geraldo (gbsilva) Posted April 12, 2013 Report Share Posted April 12, 2013 Judson e se voce fizer assim: //-> Pega resolução da telanResHor := oWnd:nHorzRes()nResVer := oWnd:nVertRes() DEFINE WINDOW osii60 FROM 0,0 to nResHor, nResVer ; NO CAPTION ; BORDER NONE ; of ownd_principal ; BRUSH oBrush1 Sds, Quote Link to comment Share on other sites More sharing options...
JUDSON Posted April 12, 2013 Author Report Share Posted April 12, 2013 Silva coloquei do jeito vc disse a tela fica igual desse jeito http://imageshack.us/photo/my-images/507/antesdocenter.jpg/ ai coloco o osii60:CENTER() antes do activate , mais continua do mesmo jeito , acho ate q centraliza mais a imagem duplica Quote Link to comment Share on other sites More sharing options...
sambomb Posted April 12, 2013 Report Share Posted April 12, 2013 Tente: oWnd:OnResize := {||oWnd:Center()} Activate Windows oWnd Obs.: Colocado em OnResize pois é o último bloco validado pela Windows Quote Link to comment Share on other sites More sharing options...
sambomb Posted April 12, 2013 Report Share Posted April 12, 2013 Antes do Activate não adianta, tem que quer na inicialização! Passei a outra solução porque pensei que já sabia disso... oWnd:bInit := {||oWnd:Center()} Quote Link to comment Share on other sites More sharing options...
JUDSON Posted April 12, 2013 Author Report Share Posted April 12, 2013 Quem coisa maluca , nao deu certo osii60:OnResize := {||osii60:Center()} ACTIVATE WINDOW osii60 valid f_sii60(,2,2) MAXIMIZED ON INIT ( osii60:bInit := {||osii60:Center()} ) fiz as duas maneiras e continua o problema. Quote Link to comment Share on other sites More sharing options...
sambomb Posted April 12, 2013 Report Share Posted April 12, 2013 On Init osii:Center() e não do jeito que você fez... Quote Link to comment Share on other sites More sharing options...
sambomb Posted April 12, 2013 Report Share Posted April 12, 2013 Maximized não vai deixar centralizar, vai entrar maximizado, retira essa tag Quote Link to comment Share on other sites More sharing options...
JUDSON Posted April 12, 2013 Author Report Share Posted April 12, 2013 ja fiz isso meu bom homem , nao deu certo , Sambomb , ja que nao ta dando certo , sera que existe uma forma de preencher toda a tela com essa imagem , sendo q a imagem esta em 1024 x 768 e a resolucao esta em 1360 x 768 ou em qualquer outra acima ? lembrando que a imagem esta definida assim: //-> Pega resolução da tela nResHor := ownd_principal:nHorzRes() nResVer := ownd_principal:nVertRes() DEFINE BRUSH oBrush1 file l_pasta + "frente_guardiao.bmp" DEFINE WINDOW osii60 FROM 0,0 to nResHor, nResVer pixel ; NO CAPTION ; BORDER NONE ; of ownd_principal ; BRUSH oBrush1 http://imageshack.us/photo/my-images/507/antesdocenter.jpg/ Quote Link to comment Share on other sites More sharing options...
JUDSON Posted April 12, 2013 Author Report Share Posted April 12, 2013 ja fiz isso meu bom homem , nao deu certo , Sambomb , ja que nao ta dando certo , sera que existe uma forma de preencher toda a tela com essa imagem , sendo q a imagem esta em 1024 x 768 e a resolucao esta em 1360 x 768 ou em qualquer outra acima ? lembrando que a imagem esta definida assim: //-> Pega resolução da tela nResHor := ownd_principal:nHorzRes() nResVer := ownd_principal:nVertRes() DEFINE BRUSH oBrush1 file l_pasta + "frente_guardiao.bmp" DEFINE WINDOW osii60 FROM 0,0 to nResHor, nResVer pixel ; NO CAPTION ; BORDER NONE ; of ownd_principal ; BRUSH oBrush1 http://imageshack.us...esdocenter.jpg/ Quote Link to comment Share on other sites More sharing options...
kleyber Posted April 13, 2013 Report Share Posted April 13, 2013 Fala Judson blz? Brother, pelo que entendi, não tem como. O jeito é criar o bmp com o formato que vc deseja e aà aplicar o que foi dito pelos colegas. o BRUSH não te dá alternativa de redimensionar o bmp em qualquer resolução. Quote Link to comment Share on other sites More sharing options...
JUDSON Posted April 15, 2013 Author Report Share Posted April 15, 2013 que pena kleyber , qd o monitor tem uma relosuçao acima de 1024 x 768 a imagem nao fica legal , e fica inviável criar varias telas com tamanhos ( resolucoes ) diferentes e o pior que bmp sempre ocupa mais espaço, sera que o IMAGE que roda .jpg nao faria isso ? http://imageshack.us/photo/my-images/507/antesdocenter.jpg/ Quote Link to comment Share on other sites More sharing options...
JUDSON Posted April 15, 2013 Author Report Share Posted April 15, 2013 Consegui resolver , tirei o brush e usei o image. Alem do mais deixo de usar o bmp e passo a usar o jpg que e menor. //-> Pega resolução da tela nResHor := ownd_principal:nHorzRes() nResVer := ownd_principal:nVertRes() DEFINE WINDOW osii60 FROM 0,0 to nResHor, nResVer pixel ; NO CAPTION ; BORDER NONE ; of ownd_principal @ 00,00 Image oImagem_venda FILENAME "BMP\frente_guardiao.jpg" Size nResHor,nResVer ADJUST PIXEL OF osii60 NOBORDER oImagem_venda:Progress( .F. ) oImagem_venda:refresh() ACTIVATE WINDOW osii60 valid f_sii60(,2,2) MAXIMIZED ON PAINT ( sysrefresh()) Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 15, 2013 Report Share Posted April 15, 2013 judson, vamos lá?? Incorpore esta função em C by Vagner Wirts e Faça como exemplo abaixo. // Para Usar é simples : // Resolucao de video By Vagner Wirts aResolucaoAtual := VMudaVideo(1024,768) DEFINE WINDOW oWnd MDI MENU MenuPrincipal() TITLE cTitle PIXEL ; FROM 0, 0 TO Getsysmetrics(17), Getsysmetrics(16) BRUSH oBrush ; MENUINFO 0 ICON oIco BORDER SINGLE ... ACTIVATE WINDOW... // na saida do seu program: // Isso fará mudar para a nova configuração, lhe retornando um array, para que qndo sair do sistema retornar para a incial VMudaVideo(aResolucaoAtual[1],aResolucaoAtual[2]) // Vagner Wirts // Volta a resolucao original /********************************************************* * Função : Funcao em C para mudar a Resolução da Tela se Menor da Necessária para trabalhar * Data : 13/03/2013 à s 12:05:26 por Vagner * Revisado em : 13/03/2013 à s 12:05:35 por Vagner * Parâmetros : * iWidthNew - Largura MÃnima Necessária * iHeightNew - Altura MÃnima Necessária **********************************************************/ #Pragma BEGINDUMP #include <Windows.h> #include <ShellApi.h> #include <Wingdi.h> #include <hbapi.h> HB_FUNC (VMUDAVIDEO) { int iWidthNew = hb_parni(1); int iHeightNew = hb_parni(2); int iWidth,iHeight ; //Pega a Configuração Atual DEVMODE DeviceMode = { 0 }; EnumDisplaySettings( NULL, ENUM_CURRENT_SETTINGS, &DeviceMode ); iWidth = DeviceMode.dmPelsWidth; iHeight = DeviceMode.dmPelsHeight; // if(iWidth < iWidthNew || iHeight < iHeightNew) { //Desculpem eu retirei isso pois só serve para eu, senão vcs não conseguirão retorar o monitor //Muda para a nova Configuração DeviceMode.dmPelsWidth = iWidthNew ; DeviceMode.dmPelsHeight = iHeightNew; ChangeDisplaySettings( &DeviceMode, 0 ); // } hb_reta( 2 ); hb_storni( iWidth , -1, 1 ); hb_storni( iHeight, -1, 2 ); } #pragma ENDDUMP /* Para Usar é simples : aResolucaoAtual := VMudaVideo(1024,768) Isso fará mudar para a nova configuração, lhe retornando um array, para que qndo sair do sistema retornar para a incial VMudaVideo(aResolucaoAtual[1],aResolucaoAtual[2]) Abraços, Vagner Wirts */ Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 15, 2013 Report Share Posted April 15, 2013 Depois, vamos discutir o a .BMP no dialogo... São coisas diferentes. Quote Link to comment Share on other sites More sharing options...
JUDSON Posted April 15, 2013 Author Report Share Posted April 15, 2013 valeu pela força kapiaba , esse funcao e interessante , mas vou testar o image . Quote Link to comment Share on other sites More sharing options...
daniel_halon Posted April 16, 2013 Report Share Posted April 16, 2013 Olá Judson, ve se serve pra vc. DEFINE BITMAP opapel FILENAME "Image\evs.BMP" DEFINE WINDOW oWnd ; TITLE "EVS distribuidora de alimentos"; FROM 1, 5 TO 20, 70; MENU MenuMain(oWnd) ; ICON oIcon oWnd:bPainted := { | hDC | PalBmpDraw( hDC, 0, 0, oPapel:hBitMap,oPapel:hPalette,oWnd:nRight+2,oWnd:nBottom+2) } Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.