Estructura IMAGELISTDRAWPARAMS
Definición
typedef struct _IMAGELISTDRAWPARAMS { DWORD cbSize; HIMAGELIST himl; int i; HDC hdcDst; int x; int y; int cx; int cy; int xBitmap; int yBitmap; COLORREF rgbBk; COLORREF rgbFg; UINT fStyle; DWORD dwRop; DWORD fState; DWORD Frame; DWORD crEffect; } IMAGELISTDRAWPARAMS;
Contiene información sobre una operación de trazado de una lista de imágenes y es usado con la función ImageList_DrawIndirect.
Descripción
- cbSize
- El tamaño de esta estructura, en bytes.
- himl
- Un manipulador de la lista de imágenes que contiene la imagen a trazar.
- i
- El índice basado en cero de la imagen a trazar.
- hdcDst
- Un manipulador del contexto de dispositivo de destino.
- x
- La coordenada x que especifica dónde se trazará la imagen.
- y
- La coordenada y que especifica dónde se trazará la imagen.
- cx
- Un valor que especifica el número de pixels a trazar, relativo a la esquina superior izquierda de la operación de trazado que se especifica por xBitmap y yBitmap. Si cx y cy son cero, entonces la función de trazado dibuja la sección válida completa. El método no se asegura de que los parámetros sean válidos.
- cy
- Un valor que especifica el número de pixels a trazar, relativo a la esquina superior izquierda de la operación de trazado que se especifica por xBitmap y yBitmap. Si cx y cy son cero, entonces la función de trazado dibuja la sección válida completa. El método no se asegura de que los parámetros sean válidos.
- xBitmap
- La coordenada x que especifica la esquina superior izquierda de la operación de trazado en referencia a la propia imagen. Los píxeles de la imagen que esten a la izquierda de xBitmap y encima de yBitmap no aparecen.
- yBitmap
- La coordenada y que especifica la esquina superior izquierda de la operación de trazado en referencia a la propia imagen. Los píxeles de la imagen que esten a la izquierda de xBitmap y encima de yBitmap no aparecen.
- rgbBk
- El color de fondo de la imagen. Este parámetro puede ser un valor RGB definido por la aplicación
o uno de los valores siguientes:
Valor Significado CLR_DEFAULT El color de fondo por defecto. La imagen se traza usando el color de fondo de la lista de imágenes. CLR_NONE Sin color de fondo. La imagen se traza transparentemente. - rgbFg
- El color de primer plano de la imagen. Este miembro sólo se usa se fStyle incluye una de las banderas
ILD_BLEND25 o ILD_BLEND50. Este parámetro puede ser un valor RGB definido por la aplicación o uno de los
valores siguientes:
Valor Significado CLR_DEFAULT El color de primer plano por defecto. La imagen se traza usando el color de resaltado del sistema como el color de primer plano. CLR_NONE Sin color de mezcla. La imagen es mezclada con el color del contexto de dispositivo de destino. - fStyle
- Una bandera que especifica el estilo de trazado y, opcionalmente, la imagen superpuesta. Ver la sección de
comentarios para mayor información sobre imágenes superpuestas. Este miembro puede contener uno o más banderas
de trazado de listas de imágenes.
Constante Descripción ILD_NORMAL Traza la imagen usando el color de fondo de la lista de imágenes. Si el color de fondo es el valor CLR_NONE, la imagen se traza transparentemente usando la máscara. ILD_TRANSPARENT Traza la imagen transparentemente usando la máscara, independientemente del color de fondo. Este valor no tiene efecto si la lista de imágenes no contiene una máscara. ILD_BLEND25 Traza la imagen, mezclada un 25% con el color con el color de mezcla especificado por rgbFg. Este valor no tiene efecto si la lista de imágenes no contiene una máscara. ILD_FOCUS Lo mismo que ILD_BLEND25. ILD_BLEND50 Traza la imagen, mezclada un 50% con el color con el color de mezcla especificado por rgbFg. Este valor no tiene efecto si la lista de imágenes no contiene una máscara. ILD_SELECTED Lo mismo que ILD_BLEND50. ILD_BLEND Lo mismo que ILD_BLEND50. ILD_MASK Traza la máscara. ILD_IMAGE Si la imagen superpuesta no requiere una máscara para ser trazada, asignar esta bandera. ILD_ROP Traza la imagen usando el código de operación de rastreo especificado por el miembro dwRop. ILD_OVERLAYMASK Para extraer la imagen superpuesta desde el miembro fStyle, usar la operación lógica AND para combinar fStyle con el valor ILD_OVERLAYMASK. ILD_PRESERVEALPHA Preserva el canal alfa en el destino. ILD_SCALE Hace que la imagen se escale por cx, cy en lugar de ser recortada. ILD_DPISCALE Escala la imagen a los dpi actuales del display. ILD_ASYNC A partir de Windows Vista. Traza la imagen si está disponible en la caché. No la extráe automáticamente. El método de trazado invocado retorna E_PENDING al componente que lo llama, de modo que pueda tomar una acción alternativa, como por ejemplo, proporcionar otra imagen y encolar un procedimiento de segundo plano para forzar que la imagen sea cargada mediante ForceImagePresent usando la bandera ILFIP_ALWAYS. La bandera ILD_ASYNC evita que la operación de extracción bloquee el proceso actual y es especialmente importante si el método de trazado es invocado desde el proceso del interfaz de usuario (UI). - dwRop
- Un valor que especifica el código de operación de rastreo. Estos códigos definen como se combinarán
los datos de color del rectángulo de origen con los datos de color del rectánguno de destino para
obtener el color final. Este parámetro es ignorado si fStyle no incluye la bandera ILD_ROP.
Algunos códigos de operación comunes son:
Valor Significado BLACKNESS Rellena el rectángulo de destino usando el color asociado con el índice cero en la paleta física. (Este color es negro en la paleta física por defecto.) DSTINVERT Invierte el rectángulo de destino. MERGECOPY Mezcla los colores del rectángulo de origen con el patron especificado usando la operación booleana AND. MERGEPAINT Mezcla los colores del rectángulo de origen invertido con los colores del rectángulo de destino usando la operación lógica OR. NOTSRCCOPY Copia el rectángulo de origen invertido al destino. NOTSRCERASE Combina los colores de los rectángulos de origen y destino usando el operador booleano OR. Invierte el color resultante. PATCOPY Copia el patrón especificado en el mapa de bits de destino. PATINVERT Combina los colores del patrón especificado con los colores del rectángulo de destino usando el operador booleano XOR. PATPAINT Combina los colores del patrón con los colores de rectángulo de origen invertidos y combina el resultado con los colores del rectángulo de destino usando el operador booleno OR. SRCAND Combina los colores de los rectángulos de origen y destino usando el operador booleano AND. SRCCOPY Copia el rectángulo de origen directamente en el rectángulo de destino. SRCERASE Combina los colores invertidos del rectángulo de destino con los colores del rectángulo de origen usando la operación booleana AND. SRCINVERT Combina los colores de los rectángulos de origen y destino usando el operador booleano XOR. SRCPAINT Combina los colores de los rectángulos de origen y destino usando el operador booleano OR. WHITENESS Rellena el rectángulo de destino usando el color asociado con el índice uno de la paleta física. Este color es blanco para la paleta física por defecto. - fState
- Una bandera que especifca el estado de trazado. Este miembro puede contener una o más banderas de estado de listas de imágenes. Se debe disponer de la versión 6 de comctl32.dll para usar este miembro. Ver las observaciones.
- Frame
- Usado con el efecto de mezcla alfa.
Cuando se usa con ILS_ALPHA, este miembro mantiene el valor para el canal alfa. Este valor puede variar entre 0 y 255, con 0 se mantiene completamente transparente, y 255 completamente opaco.
Se debe disponer de la versión 6 de comctl32.dll para usar este miembro. Ver las observaciones. - crEffect
- Un color usado para los efectos de brillo y sombra. Se debe disponer de la versión 6 de comctl32.dll para usar este miembro. Ver las observaciones.
Observaciones
Una imagen superpuesta es una imagen que se traza encima de la imagen primaria especificada en el miembro i de la estructura. Para especificar una imagen superpuesta, usar el operador de bits OR para combinar fStyle con la macro INDEXTOOVERLAYMASK, pasando el índice basado en 1 de la imagen superpuesta a la macro. Esta imagen debe haber sido especificada previamente como una imagen superpuesta usando la función ImageList_SetOverlayImage.
Para extraer la imagen superpuesta desde fStyle, usar el operador de bits AND para enmascarar fStyle con el valor ILD_OVERLAYMASK.
La versión 6 de Comctl32.dll no es redistribuible, pero está incluida a partir de Windows XP. Para usar la versión 6 de Comctl32.dll, se debe especificar en el manifiesto.