Poner texto sobre Bitmaps

Poner texto sobre Bitmaps

Postby VeRCE » Fri Dec 16, 2005 4:55 pm

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.
Juan Carlos Salinas Ojeda
México. D.F.
-------------------------------------------------
User avatar
VeRCE
 
Posts: 219
Joined: Fri Nov 04, 2005 2:34 pm
Location: Mexico D.F.

Postby Marcelo Via Giglio » Fri Dec 16, 2005 5:37 pm

Hola,

pues ahora tu contenerdor seria el BITMAP, @ 10,10 SAY "hhhh" OF oBmp
deberia funcionar

saludos

Marcelo
Marcelo Via Giglio
 
Posts: 1065
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Postby Alfredo Arteaga » Fri Dec 16, 2005 5:50 pm

Se me ocurre usar:

DrawText( <hDC>, <cText>, <aRect>, <nStyle> )

Saludos.
User avatar
Alfredo Arteaga
 
Posts: 326
Joined: Sun Oct 09, 2005 5:22 pm
Location: Mexico

Postby Willi Quintana » Fri Dec 16, 2005 7:01 pm

Yo le hago asi:

DEFINE WINDOW oWnd...


ACTIVATE WINDOW oWnd ON INT (ResumCtas(oWndl) )
..
..
Function ResumCtas(oWndl)
..
..
@90, SAY cDatos OF oWnd
..
Return(Nil)

Salu2
User avatar
Willi Quintana
 
Posts: 1022
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Postby jlcapel » Fri Dec 16, 2005 8:47 pm

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
User avatar
jlcapel
 
Posts: 229
Joined: Wed Oct 12, 2005 5:32 pm
Location: Valencia - España

Postby VeRCE » Fri Dec 16, 2005 10:05 pm

Amigos, ninguna forma fucionó!

SetBkMode( oBitmap:hDC, 1 )
TextOut( oBitmap:hDC, 1, 1, "PROBANDO EL TEXTO" )
DrawText( oBitmap:hDC, "OTRA PRUEBA DEL TEXTO", { 1,1,500,500 } )


Alguna otra alternativa ???
Juan Carlos Salinas Ojeda
México. D.F.
-------------------------------------------------
User avatar
VeRCE
 
Posts: 219
Joined: Fri Nov 04, 2005 2:34 pm
Location: Mexico D.F.

Postby VeRCE » Fri Dec 16, 2005 10:07 pm

Tampoco esta:

@ 1,1 SAY oSay PROMPT "PROBANDO" OF oBitmap

:(
Help please !!!
Juan Carlos Salinas Ojeda
México. D.F.
-------------------------------------------------
User avatar
VeRCE
 
Posts: 219
Joined: Fri Nov 04, 2005 2:34 pm
Location: Mexico D.F.

Postby jlcapel » Fri Dec 16, 2005 11:05 pm

Juan Carlos,

Este trozo de código es la función DRAW del ejemplo testbrus.prg que hay en la carpeta SAMPLES.

Code: Select all  Expand view  RUN
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


Sustituye este código por el que hay en testbrus.prg

Espero que sea de ayuda.

Saludos,
José Luis Capel
www.capelblog.com
User avatar
jlcapel
 
Posts: 229
Joined: Wed Oct 12, 2005 5:32 pm
Location: Valencia - España

Postby R.F. » Fri Dec 16, 2005 11:49 pm

Jose Luis:

Se te olvido:

SetBkMode(oWndc:dc,0) para hacer el texto transparente

o

SetBkMode(oWndc:dc,1) para hacerlo con opaco
Saludos
R.F.
R.F.
 
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Postby jlcapel » Sat Dec 17, 2005 7:59 am

René,

Code: Select all  Expand view  RUN
Se te olvido:

SetBkMode(oWndc:dc,0) para hacer el texto transparente

o

SetBkMode(oWndc:dc,1) para hacerlo con opaco


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
User avatar
jlcapel
 
Posts: 229
Joined: Wed Oct 12, 2005 5:32 pm
Location: Valencia - España

pintar encima del bitmap

Postby Paco Garcia » Sun Dec 18, 2005 4:40 pm

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
User avatar
Paco Garcia
 
Posts: 172
Joined: Fri Oct 07, 2005 12:00 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 73 guests