Utilizar un Bmp como cursor

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

Utilizar un Bmp como cursor

Post by Rafael Clemente »

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
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

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
Rafael Clemente
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Post by Rafael Clemente »

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
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

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

Post by Paco Garcia »

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

// 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
Rafael Clemente
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Post by Rafael Clemente »

Paco:
No tenía ni idea de que existiesen estas funciones. Las probaré y ya te diré algo. Entretanto, muchas gracias!
Rafael
Post Reply