Page 1 of 2

a TBitmap behind of a TBitmap?

Posted: Fri Mar 07, 2008 12:20 am
by JC
How do put a object TBitmap on top of another. And the first be transparent... without it being shown the "square" of the object?

Something like a overlap effect with transparency!!

Posted: Fri Mar 07, 2008 5:35 am
by Otto
bmponbmp.prg from the FIVEWIN samples



#include "FiveWin.ch"

FUNC main()

local oWnd, oBmp, oBmp1, hBitmap

DEFINE WINDOW oWnd TITLE "Bitmap on a bitmap"

hBitmap := ReadBitmap( 0, "..\bitmaps\book.bmp" )

@ 1, 1 BITMAP oBmp FILENAME "..\bitmaps\magic.bmp" OF oWnd

oBmp:bPainted = { || PaintTransparent( oBmp:hDC, hBitmap ),;
SetBkMode( oBmp:hDC, 1 ),;
SetTextColor( oBmp:hDC, CLR_YELLOW ),;
TextOut( oBmp:hDC, 5, 5, "Hello" ) }

ACTIVATE WINDOW oWnd

DeleteObject( hBitmap )

RETURN NIL

function PaintTransparent( hDC, hBitmap )

local hBmpOld := SelectObject( hDC, hBitmap )
local nZeroZeroClr := GetPixel( hDC, 0, 0 )
local nOldClr

SelectObject( hDC, hBmpOld )
nOldClr = SetBkColor( hDC, nRGB( 255, 255, 255 ) )
TransBmp( hBitmap, nBmpWidth( hBitmap ), nBmpHeight( hBitmap ),;
nZeroZeroClr, hDC, 10, 20, nBmpWidth( hBitmap ), nBmpHeight( hBitmap ) )
SetBkColor( hDC, nOldClr )

return nil
Image

Posted: Fri Mar 07, 2008 12:38 pm
by JC
Otto...

the function TransBmp() not exists in my source!!

Posted: Fri Mar 07, 2008 12:59 pm
by JC
How I can make the background of image of "theater masks" transparent?

Image

Posted: Fri Mar 07, 2008 1:45 pm
by Antonio Linares
Julio,

You need to use TransBmp(). It is included in FWH.

What FWH version are you using ?

Posted: Fri Mar 07, 2008 1:49 pm
by JC
Antonio Linares wrote:Julio,

You need to use TransBmp(). It is included in FWH.

What FWH version are you using ?

Hi Linares... my version of fivewin is 2.26
I don't found this function there! :(

Posted: Fri Mar 07, 2008 1:52 pm
by Antonio Linares
Julio,

You need to upgrade FWH

Posted: Fri Mar 07, 2008 2:25 pm
by RAMESHBABU
Mr.Julio,

Try this code.

Code: Select all


FUNCTION PaintBmp(oDlg, cFileRes, nRow, nCol)

LOCAL aBmpPal, hBitmap

IF FILE(cFileRes)
   * This Code is for reading bitmap file from disk file
   aBmpPal = PalBmpRead(oDlg:hDC, cFileRes )
ELSE
   * This Code is for reading bitmap file resource
   aBmpPal = PalBmpLoad( cFileRes )
ENDIF

hBitmap = aBmpPal[ 1 ]

DrawMasked( oDlg:hDC, hBitmap, nRow, nCol )

RETURN nil

and you will get the desired effect

Regards,

- Ramesh Babu P

Posted: Fri Mar 07, 2008 3:35 pm
by Silvio
Dear jc,
You need My TTitleBar class but it is a beta class perhaps I send it to antonio at the end of the next week

Posted: Fri Mar 07, 2008 3:48 pm
by JC
Silvio... please, send to me too the class!

Ramesh, I have try!

Posted: Fri Mar 07, 2008 3:53 pm
by JC
RAMESHBABU wrote:Mr.Julio,

Try this code.

Code: Select all


FUNCTION PaintBmp(oDlg, cFileRes, nRow, nCol)

LOCAL aBmpPal, hBitmap

IF FILE(cFileRes)
   * This Code is for reading bitmap file from disk file
   aBmpPal = PalBmpRead(oDlg:hDC, cFileRes )
ELSE
   * This Code is for reading bitmap file resource
   aBmpPal = PalBmpLoad( cFileRes )
ENDIF

hBitmap = aBmpPal[ 1 ]

DrawMasked( oDlg:hDC, hBitmap, nRow, nCol )

RETURN nil

and you will get the desired effect

Regards,

- Ramesh Babu P

Ramesh, thanks for your help but, not works!

Posted: Sat Mar 08, 2008 4:38 pm
by RAMESHBABU
Mr.Julio,


How did you paint the Title Bar ?. It is through any gradiation function or
a bitmap?

Can you post your code here for the dialog shown. I will try to solve it.

This is resulted output using the above function posted by me.

Image

The dialog background is painted using gradition function (not a bitmap)
and the title bar is a bitmap and the picture painted on the titlebar bitmap
is a bitmap.


- Ramesh Babu P

Posted: Sun Mar 09, 2008 6:00 pm
by mmercado
Hi Julio:

Why don't you try with TSButton ?, it's very simple...

Here using the same fwh sample with a dialog

Code: Select all

#include "FiveWin.ch" 
#include "TsButton.ch" 

FUNC main() 

   local oWnd, oBmp, oBmp1, hBitmap

   DEFINE DIALOG oWnd TITLE "Bitmap on a bitmap" COLOR CLR_BLACK, CLR_CYAN

   setbkmode( ownd:hdc, 1 )
   @ 1, 1 BITMAP oBmp FILENAME "..\bitmaps\magic1.bmp" OF oWnd NOBORDER TRANSPARENT

   @20,10 SBUTTON OF oWnd FILENAME "..\bitmaps\book.bmp" SIZE 10, 20 PIXEL BITMAP

   ACTIVATE DIALOG oWnd

   DeleteObject( hBitmap )

RETURN NIL

Regards

Manuel Mercado

Posted: Mon Mar 10, 2008 11:58 am
by JC
Antonio Linares wrote:Julio,

You need to upgrade FWH
Linares, sorry but I informed to you a wrong version of my fivewin... really, the version is 2.6 of 2005.

But, I still doesn't have a transbmp function :(

Posted: Mon Mar 10, 2008 12:01 pm
by JC
mmercado wrote:Hi Julio:

Why don't you try with TSButton ?, it's very simple...

Here using the same fwh sample with a dialog

Code: Select all

#include "FiveWin.ch" 
#include "TsButton.ch" 

FUNC main() 

   local oWnd, oBmp, oBmp1, hBitmap

   DEFINE DIALOG oWnd TITLE "Bitmap on a bitmap" COLOR CLR_BLACK, CLR_CYAN

   setbkmode( ownd:hdc, 1 )
   @ 1, 1 BITMAP oBmp FILENAME "..\bitmaps\magic1.bmp" OF oWnd NOBORDER TRANSPARENT

   @20,10 SBUTTON OF oWnd FILENAME "..\bitmaps\book.bmp" SIZE 10, 20 PIXEL BITMAP

   ACTIVATE DIALOG oWnd

   DeleteObject( hBitmap )

RETURN NIL

Regards

Manuel Mercado
Hello Manuel Mercado...

Really, I don't understand you about the TsButton... I want other thing! the image of "theater masks" stay transparent, for the background appear! More less this!