Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Cambiar cursor de Windows

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Cambiar cursor de Windows Responder citando

Necesito poner una opción de cambiar el cursor desde mi aplicación, pero de forma que permanezca el cambio aunque salga fuera de la ventana y que se restaure a su forma original al salir de la aplicación (o al indicárselo en la misma).
Ya se que se habló mucho en el foro sobre cursores pero no encuentro nada que me mantenga el cursor elegido cuando pas sobre componentes de windows ajenos a la aplicación.

Muchas gracias. Rolling Eyes
Volver arriba
Mensaje    Asunto: Responder citando

Tienes la función del API SetSystemCursor.

Un pequeño ejemplo. Añadimos un botón al Form y el siguiente código en el OnClick del mismo:

Importante antes que nada para que las macros OCR_... se incluyan debes poner #define OEMRESOURCE antes del #include<vcl.h> al principio del modulo o bien en vez de ponerlo ahí ya que eso afectaria a como se crean las cabeceras precompiladas lo ponemos en las opciones de proyecto (MENU: Project | Options... | Pestaña:Directories/Conditionals | Edit:Conditionals Defines)

    // Guardamos una copia del cursor original
    HCURSOR hCursorOriginal = CopyCursor(Screen->Cursors[crArrow]);

    // Sustituimos el cursor normal del sistema por el crHourGlass
    HCURSOR hCursor = CopyCursor(Screen->Cursors[crHourGlass]);
    SetSystemCursor(hCursor, OCR_NORMAL);

    // Mostramos para todo el sistema el
    // cursor modificado durante 5 segundos
    Sleep(5000);

    // Restauramos el cursor original
    SetSystemCursor(hCursorOriginal, OCR_NORMAL);

¡Ojo! realmente lo que hace esta función es sustituir el cursor según la macro OCR_... como si lo hiciesemos desde el panel de control. Mirar con atención la referencia del API.

Otro detalle, es que el ejemplo cambia solo el cursor por defecto, pero tendriamos que cambiar el cursor en todos los estados (OCR_...) si queremos que el cursors se quede fijo con el mismo dibujo pasemos por donde pasemos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.