Jose,
Puedo ver la poténcia de xHarbour al poder utilizar directamente funciones
en C.
Ahora bien,... NPI de C. Buaaaaaa!!!
Menudo dilema tengo ahora, pues... con el primer Sample, veo la imagen
PERFECTAMENTE, pero no soy capaz de visualizar texto...
Y con este Sample de C veo perfectamente el texto, pero no se como
visualizar la imágen...
Venga... un empujoncito mas... a ver si puede ser posible visualizar la
imagen y el texto a la vez...
Gracias.
Un Saludo,
Xevi.
"Jose F. Gimenez" <
jfgimenez@wanadoo.es> escribió en el mensaje
news:43160aca$[email=
1@ozsrvnegro.ozlan.local...]
1@ozsrvnegro.ozlan.local...[/email]
>
> Xevi,
>
>> En el Sample que me has "montado" haces referencia a una Imagen, y la
>> "pintas" en el Evento FormPaint, y luego al abrir una CHILD ya queda por
>> debajo, pues todo lo que haga ya en esa ventana ya no llama al evento
>> FormPaint del FormFrame.
>> Bien, si en efecto es lo que realmente pretendo, pero... ¿Cómo "pinto" un
>> control que no sea una Imagen??? Un Label por ej.
>>
>> Yo he probado hacer lo mismo del objeto TImage con un TLabel, pero por lo
>> visto el control TLabel no dispone del evento Paint...
>
> Es que realmente no he usado un control TImage, sino un objeto TPicture.
> En cualquier caso, fíjate que recibes como parámetro un hDC. Ese hDC lo
> puedes usar con cualquier función GDI para dibujar lo que necesites
> (texto, lineas, puntos, rectángulos, etc.). Mi consejo además, es que si
> vas a pintar varias cosas lo hagas en C directamente. Irá mucho más rápido
> además de evitarte alguna molestia si no están todas las funciones
> "wrapeadas". En este caso sería algo así:
>
> #pragma BEGINDUMP
>
> #include "windows.h"
> #include "xailer.h"
>
> XA_FUNC_STATIC( TFORM1_FORMPAINT )
> {
> HDC hdc = (HDC) hb_parnl( 2 );
>
> TextOut( hdc, 150, 90, "Hola, ¿que tal?", 15 );
> MoveToEx( hdc, 80, 80, NULL );
> LineTo( hdc, 200, 50 );
> LineTo( hdc, 320, 80 );
> LineTo( hdc, 320, 120 );
> LineTo( hdc, 200, 150 );
> LineTo( hdc, 80, 120 );
> LineTo( hdc, 80, 80 );
> }
>
> #pragma ENDDUMP
>
> Fíjate que el nombre de la función (lo que está entre paréntesis detrás de
> XA_FUNC_STATIC) tiene que ir siempre en mayúsculas, y tiene que ser
> siempre el nombre de la clase, en este caso el formulario, seguido de un
> guión de subrayado y el nombre del método.
>
> --
> Un saludo,
>
> José F. Giménez
>
>