Jump to content
Fivewin Brasil

Perda da imagem bmp na tela principal -RESOLVIDO


daniel_halon

Recommended Posts

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
Link to comment
Share on other sites

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
end

return nil


//--------------------------

Link to comment
Share on other sites

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() )

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...