Ejemplo de como Utilizar RoundBox()

Ejemplo de como Utilizar RoundBox()

Postby maecmx » Fri Feb 10, 2006 2:16 pm

Alguien me podría ayudar con un ejemplo de cómo utilizar RoundBox() quiero hacer en la impresión cuadros pero que tengan las puntas redondeadas. :lol:
maecmx
 
Posts: 19
Joined: Fri Nov 11, 2005 8:12 pm
Location: Guadalajara, Jalisco Mexico

Postby manuramos » Fri Feb 10, 2006 4:08 pm

Yo utilizo mucho RoundRect, de FW2.3, que supongo que será similar


Primero tienes que definir un PEN y un BRUSH, a mi me gusta definirlos fuera de la función que los utiliza, pues parece como si se quedaran en memoria. No te olvides borrarlos después. También puedes utilizar objetos predefinidos de Windows con GetStockObject (mira tu manual o fichero de ayudas).

BRS_AZ := CreateSolidBrush(CLR_BLUE)
PEN_RJ := CreatePen(0,5,CLR_HRED)

Despues los pasas a la función de pintado (junto al HDC del Dialogo por ejemplo con oDlg:bPainted := { |hDc| MiFuncion(hDc, BRS_AZ, PEN_RJ), o sinó lo defines dentro hDc := oDlg:GetDc())

Después llamas a la función:

MiFuncion(hDc, BRS_AZ, PEN_RJ),
LOCAL hOldB := SelectObject(hDc,BRS_AZ)
LOCAL hOldP := SelectObject(hDc,PEN_RJ)
*
// Región con borde rojo y fondo azul
RoundRect(hDc,5,2,1019,662,40,40) // ROUNDREC(Left,Top,Right,Bottom,Radio,Radio)

SelectObject(hDc,GetStockObject( 8 )) // Object( 8 ) => SIN PEN
// Región sin borde y fondo azul
RoundRect(hDc,5,2,1019,662,40,40)

SelectObject(hOldP)
SelectObject(hOldB) // se recuperan los objetos originales
RETURN NIL

Si has definido el conexto tu mismo con hDc := oDlg:GetDc(), al final del pintado tendrás que inhabilitarlo con oDlg:ReleasDc()

No te olvides de borrar los objetos creados, cuando no los necesites:
DeleteObject(BRS_AZ)
DeleteObject(PEN_RJ)

Es muy sencillo. Espero que te sirva.
Nos Gusta Programar
manuramos
 
Posts: 219
Joined: Mon Dec 26, 2005 7:25 pm
Location: Jerez de la Frontera (Spain)


Return to FiveWin para Harbour/xHarbour

Who is online

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