Poner texto sobre Bitmaps
Poner texto sobre Bitmaps
Tengo la siguiente Ventana:
DEFINE WINDOW oWnd FROM 0,0 TO 45,90 TITLE NAMEPROGRAM ICON oIcon COLOR CLR_BLACK,RGB(172,194,139)
DEFINE BITMAP oBitmap FILE ".\BMPS\FONDO.BMP"
ACTIVATE WINDOW oWnd MAXIMIZED ;
ON PAINT ColocaBitmaps( oWnd, hDC, oBitmap:hBitmap, oBitmap )
STAT FUNC ColocaBitmaps( oWnd, hDC, hBmp, oBitmap )
LOCAL nTop := 0
LOCAL nLeft := 235
LOCAL nWidth := oWnd:nWidth() - 235
LOCAL nHeight := oWnd:nHeight()
IF hBmp = 0
RETURN NIL
ENDIF
PALBMPDRAW( hDC, nTop, nLeft, hBmp , , nWidth, nHeight )
Return NIL
Ahora bien, NECESITO escribir encima del bitmap
varios textos y en varios tipos de letras y colores.
Es posible ?
Como se hace ?
Gracias de antemano.
DEFINE WINDOW oWnd FROM 0,0 TO 45,90 TITLE NAMEPROGRAM ICON oIcon COLOR CLR_BLACK,RGB(172,194,139)
DEFINE BITMAP oBitmap FILE ".\BMPS\FONDO.BMP"
ACTIVATE WINDOW oWnd MAXIMIZED ;
ON PAINT ColocaBitmaps( oWnd, hDC, oBitmap:hBitmap, oBitmap )
STAT FUNC ColocaBitmaps( oWnd, hDC, hBmp, oBitmap )
LOCAL nTop := 0
LOCAL nLeft := 235
LOCAL nWidth := oWnd:nWidth() - 235
LOCAL nHeight := oWnd:nHeight()
IF hBmp = 0
RETURN NIL
ENDIF
PALBMPDRAW( hDC, nTop, nLeft, hBmp , , nWidth, nHeight )
Return NIL
Ahora bien, NECESITO escribir encima del bitmap
varios textos y en varios tipos de letras y colores.
Es posible ?
Como se hace ?
Gracias de antemano.
Juan Carlos Salinas Ojeda
México. D.F.
-------------------------------------------------
México. D.F.
-------------------------------------------------
-
- Posts: 1033
- Joined: Fri Oct 07, 2005 3:33 pm
- Location: Cochabamba - Bolivia
- Alfredo Arteaga
- Posts: 326
- Joined: Sun Oct 09, 2005 5:22 pm
- Location: Mexico
- Contact:
- Willi Quintana
- Posts: 859
- Joined: Sun Oct 09, 2005 10:41 pm
- Location: Cusco - Perú
- Contact:
Juan Carlos,
Tal como dicen Alfredo y Willi debería funcionar. Sin embargo... si esos SAYS los escribes encima de los bitmaps deberás preocuparte que en cada repintado del bitmap vuelvas a escribir el say encima del bitmap. Una posible solución podría ser añadir el código para escribir esos SAYS en la función que utilizas para pintar los bitmaps.
Espero que te sea de ayuda.
Saludos,
José Luis Capel
www.capelblog.com
Tal como dicen Alfredo y Willi debería funcionar. Sin embargo... si esos SAYS los escribes encima de los bitmaps deberás preocuparte que en cada repintado del bitmap vuelvas a escribir el say encima del bitmap. Una posible solución podría ser añadir el código para escribir esos SAYS en la función que utilizas para pintar los bitmaps.
Espero que te sea de ayuda.
Saludos,
José Luis Capel
www.capelblog.com
Juan Carlos,
Este trozo de código es la función DRAW del ejemplo testbrus.prg que hay en la carpeta SAMPLES.
Sustituye este código por el que hay en testbrus.prg
Espero que sea de ayuda.
Saludos,
José Luis Capel
www.capelblog.com
Este trozo de código es la función DRAW del ejemplo testbrus.prg que hay en la carpeta SAMPLES.
Code: Select all
function Draw( oWndC, cBitmap )
local hBitmap
oWndC:GetDC()
hBitmap = ReadBitmap( oWndC:hDC, cBitmap )
DrawBitmap( oWndC:hDC, hBitmap, 0, 0 )
// jlcr
DrawText( oWndC:hDC,"www.capelblog.com", {100,0,100,100})
// jlcr
oWndC:ReleaseDC()
DeleteObject( hBitmap )
return nil
Espero que sea de ayuda.
Saludos,
José Luis Capel
www.capelblog.com
René,
Solo me centré en la impresión del texto. Pero es cierto que le falta añadir la transparencia.
Gracias por la aclaración.
Saludos,
José Luis Capel
Code: Select all
Se te olvido:
SetBkMode(oWndc:dc,0) para hacer el texto transparente
o
SetBkMode(oWndc:dc,1) para hacerlo con opaco
Gracias por la aclaración.
Saludos,
José Luis Capel
- Paco Garcia
- Posts: 172
- Joined: Fri Oct 07, 2005 12:00 pm
- Contact:
pintar encima del bitmap
Creo que deberias implementar tus funciones de pintado en el bPainted del bitmap
oBmp:bPainted := {|hDC| MiFuncion( hDC ) }
function Mifuncion( hDC )
drawtext( hdc, "hola", rc, 0 )
por ejemplo. Las coordenadas de rc son relativas al bitmap
Un saludo
oBmp:bPainted := {|hDC| MiFuncion( hDC ) }
function Mifuncion( hDC )
drawtext( hdc, "hola", rc, 0 )
por ejemplo. Las coordenadas de rc son relativas al bitmap
Un saludo