commctrl.h

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.