daniel_halon Posted November 26, 2014 Report Share Posted November 26, 2014 Olá amigos, tenho um problema que não estou conseguindo resolver, quem sabe alguém pode me dar uma luz. Copiei dos exemplos da Vlib do Vagner para pintar a tela principal com um bmp. Acontece que quando miniminizo o sistema e ele fica um tempo assim quando restauro ele perde o bmp e a tela fica preta, porem se não miniminizo pode ficar aberta o tempo todo que não acontece nada. Em um principio achei que era pouca memoria mas faz isto em qualquer computador. vou postar o e exemplo do ativate que e onde coloco para pintar a tela no inicio da window. ACTIVATE WINDOW oWnd MAXIMIZED ON PAINT( oWnd:SayBitmap( 0, 0, oPapel, oWnd:nWidth, oWnd:nHeight )); ON INIT( TIRA_X(), IF(Criador=='12081952', SerialProtect(Criador), Valida_Senha('Entrada ao Sistema', '1', .T.)), Ativa_Teclas(),Check_Agenda())) Resolvido assim... oWnd:bPainted := { | hDC | PalBmpDraw( hDC, 0, 0, oPapel:hBitMap,oPapel:hPalette,oWnd:nRight+2,oWnd:nBottom+2) } tirei do activate windows coloquei como o texto acima e acabou o problema Obrigado a todos Quote Link to comment Share on other sites More sharing options...
Rogerio Figueira Posted November 26, 2014 Report Share Posted November 26, 2014 Eu uso assim e nunca dá erro: DEFINE BITMAP oBmp FILENAME "fundo.bmp" ... ACTIVATE WINDOW oWmaster ; VALID MsgYesNo( "Deseja sair do programa ?", "Confirme!" ); ON PAINT ( BmpTiled( hDC, oWmaster, oBmp ) ) //---------------------------------function BmpTiled( hDC, oWnd, oBmp ) local nWidth := oWnd:nWidth(), nHeight := oWnd:nHeight() local nRow := 0, nCol := 0, n local nBmpWidth := oBmp:nWidth(), nBmpHeight := oBmp:nHeight() while nRow < nHeight nCol = 0 while nCol < nWidth PalBmpDraw( hDC, nRow, nCol, oBmp:hBitmap ) nCol += nBmpWidth end nRow += nBmpHeight endreturn nil//-------------------------- Quote Link to comment Share on other sites More sharing options...
CIACPD Posted November 27, 2014 Report Share Posted November 27, 2014 Daniel, DEFINE WINDOW oWnd FROM 0,0 TO (nalturaWin-100), (nlarguraWin-100) ; TITLE "título aplicação" ; ICON oIco ; COLOR GetSysColor( 15 ) , nrgb( 254, 254, 254 ) ; // inserir esta linha se for 255(branco) continua o problema MENU SeuMenu() Daniel Segura Quote Link to comment Share on other sites More sharing options...
daniel_halon Posted November 27, 2014 Author Report Share Posted November 27, 2014 Oi Rogerio, vou testar assim como colocaste e depois dou um retorno. Daniel, não entendi no teu código onde vai o bmp(foto)? Quote Link to comment Share on other sites More sharing options...
CIACPD Posted November 27, 2014 Report Share Posted November 27, 2014 Desculpe Daniel Halon, não fui claro, o bmp vai antes de ACTIVATE WINDOWS só resolveu o problema de tela preta e pau na imagem quando minimizava e maximizava depois que coloquei a cor de fundo, na define windows, coloquei nrgb(255,255,255) e continuou ai tive a ideia de colocar nrgb( 254, 254, 254 ), e não tive mais tela preta. DEFINE WINDOW oWnd FROM 0,0 TO (nalturaWin-100), (nlarguraWin-100) ; TITLE "título aplicação" ; ICON oIco ; COLOR GetSysColor( 15 ) , nrgb( 254, 254, 254 ) ; // inserir esta linha se for 255(branco) continua o problema MENU SeuMenu() @ 0, 0 BITMAP oBmp FILENAME "farmacia.bmp" ADJUST SIZE (nalturaWin-50), (nlarguraWin-5) OF oWnd ON CLICK ( oBmp:Refresh( .t. ) ) NOBORDER oBmp:Center() sysrefresh() ACTIVATE WINDOW oWnd MAXIMIZED ON INIT ( CHECAR_ECF() , ini_senha(), set_key_geral2() ) Quote Link to comment Share on other sites More sharing options...
daniel_halon Posted December 2, 2014 Author Report Share Posted December 2, 2014 Finalmente resolvi. Tirei do activate windows e coloquei assim. oWnd:bPainted := { | hDC | PalBmpDraw( hDC, 0, 0, oPapel:hBitMap,oPapel:hPalette,oWnd:nRight+2,oWnd:nBottom+2) } com isto mantem a tela cheia com qualquer resolução e não da mais pau. Obrigado a todos 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.