Utilizar un Bmp como cursor

Utilizar un Bmp como cursor

Postby Rafael Clemente » Mon Nov 20, 2006 10:05 pm

Tengo un pequeño Bmp que quisiera utilizar momentáneamente como cursor en lugar de la flecha de siempre. Supongo que se utiliza SetCursor() pero no he conseguido ir más allá. Alguien me podría poner un ejemplo de cómo hacerlo? Gracias

Rafael
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Postby Antonio Linares » Wed Nov 22, 2006 8:03 am

Rafael,

Usando el Borland Resources Workshop (por ejemplo), crea un cursor y "pégale" encima la imagen del bitmap.

Luego revisa samples\TestCurs.prg
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42150
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Rafael Clemente » Wed Nov 22, 2006 8:11 am

Antonio:
Gracias, pero mi problema es algo diferente: Estoy cortando un trozo de un bitmap en pantalla y me gustaría pegarlo sobre otra imagen también en pantalla. Ahora lo hago ya mediante el cursor normal (flecha) apuntando a donde quiero pegarlo; me gustaría saber si sería posible convertir momentáneamente la flecha en el trozo recortado para arrastrarlo a su posición final.

Es sólo un capricho de estética pero supongo que podría quedar bonito...

Rafael
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Postby Antonio Linares » Wed Nov 22, 2006 11:12 am

Rafael,

Revisa los fuentes de source\classes\xbrowse.prg, cuando se arrastra una cabecera de una columna con el ratón.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42150
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Paco Garcia » Wed Nov 22, 2006 12:03 pm

Hola Rafael

Creo que lo que quieres hacer has de enfocarlo por medio de un Imagelist.

Existen unas macros que hacen el proceso:

BOOL ImageList_BeginDrag( HIMAGELIST himlTrack,
int iTrack,
int dxHotspot,
int dyHotspot
);

BOOL ImageList_DragMove( int x,
int y
);

VOID ImageList_EndDrag(VOID);

Yo creo que si buscas en Google seguro que encuentras lo que te digo.

Un saludo

Paco

Code: Select all  Expand view  RUN
// Operaciones DRAG
HB_FUNC( IMAGELIST_BEGINDRAG )
{
     hb_retl( ImageList_BeginDrag( ( HIMAGELIST ) hb_parnl(1),
                  hb_parni(2),
                  hb_parni(3),
                  hb_parni(4)));
}

HB_FUNC( IMAGELIST_DRAGENTER )
{
     hb_retl( ImageList_DragEnter( (HWND) hb_parnl( 1 ), hb_parni(3), hb_parni(2)));
}

HB_FUNC( IMAGELIST_DRAGLEAVE )
{
     hb_retl( ImageList_DragLeave( (HWND) hb_parnl( 1 ) ) );
}

HB_FUNC( IMAGELIST_DRAGMOVE )
{
     hb_retl( ImageList_DragMove(  hb_parni(2), hb_parni(1)));
}
User avatar
Paco Garcia
 
Posts: 172
Joined: Fri Oct 07, 2005 12:00 pm

Postby Rafael Clemente » Wed Nov 22, 2006 9:29 pm

Paco:
No tenía ni idea de que existiesen estas funciones. Las probaré y ya te diré algo. Entretanto, muchas gracias!
Rafael
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 117 guests