¿Dónde está el recurso Win32 para el cursor del mouse para arrastrar divisores?

StackOverflow https://stackoverflow.com/questions/47538

  •  09-06-2019
  •  | 
  •  

Pregunta

Estoy creando un control/widget win32 personalizado y me gustaría cambiar el cursor a un símbolo de "divisor" horizontal al pasar el cursor sobre una línea vertical particular en el control.ES DECIR:Quiero arrastrar esta línea vertical (barra divisoria) hacia la izquierda y hacia la derecha (OESTE y ESTE).

De los cursores del sistema (OCR_*), el único cursor que tiene sentido es OCR_SIZEWE.Desafortunadamente, ese es el cursor grande e incómodo que utiliza el sistema al cambiar el tamaño de una ventana.En cambio, estoy buscando el cursor que tiene unos 20 píxeles de alto y alrededor de 3 o 4 píxeles de ancho con dos pequeñas flechas apuntando hacia la izquierda y hacia la derecha.

Puedo dibujar esto fácilmente e incluirlo como recurso en mi aplicación, pero el cursor en sí es tan frecuente que quería estar seguro de que no le faltaba nada.

Por ejemplo:cuando utiliza el mecanismo de arrastrar y soltar COM (CLSID_DragDropHelper, IDropTarget, etc.), implícitamente tiene acceso al icono de "arrastrar" (pequeño cuadro debajo del puntero).No vi una constante OCR_* explícita para este tipo...De la misma manera, si no puedo encontrar este cursor divisor directamente, me pregunto si es parte de un objeto COM o algo más en la biblioteca win32.

¿Fue útil?

Solución

Hay todo tipo de íconos, cursores e imágenes en uso en la interfaz de usuario de Windows que no están disponibles públicamente para software de terceros.Por supuesto, aún puede cargar el módulo en el que residen y usarlos, pero en realidad no hay garantía de que su programa seguirá funcionando después de una actualización/actualización del sistema.

Incluye el tuyo.Lo último que desea es agregar una dependencia adicional sobre un pequeño cursor.

Otros consejos

Yo tuve el mismo problema.Cuando revisé un código antiguo para un divisor vertical pensando que tenía una respuesta fácil, resultó que había creado y cargado mi propio recurso:

SetCursor( LoadCursor( ghInstance, "IDC_SPLITVERT" ));

Recuerdo vagamente haber invertido una cantidad considerable de tiempo y esfuerzo en encontrar la forma en que el sistema lo hiciera, por lo que (supongo) es que no hay un ICONO del sistema disponible para hacer el trabajo, por lo que es mejor que utilice el suyo propio.

Esta es una de esas ocasiones en las que me gustaría equivocarme, ya que me hubiera gustado que hubiera un icono del sistema para este trabajo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top