Compartir a través de


Procesamiento de mensajes de List-View predeterminado

En esta sección se muestra el procesamiento de mensajes de ventana realizado por un control de vista de lista.

Procesamiento de mensajes

En la tabla siguiente se describe el procesamiento de mensajes de ventana realizado por un control de vista de lista.

Mensaje Procesamiento realizado
WM_CHAR Busca un elemento de vista de lista que comience con el carácter especificado y, si se encuentra el elemento, selecciona y establece el foco en el elemento. Se concatenan varios caracteres recibidos dentro de un intervalo de tiempo de espera, que actualmente se fijan en un segundo, y el control de vista de lista busca un elemento que comienza con la cadena resultante.
WM_COMMAND Procesa el EN_UPDATE y EN_KILLFOCUS códigos de notificación y reenvía todas las demás notificaciones de control de edición a la ventana primaria.
WM_CREATE Realiza la inicialización adicional para WM_NCCREATE. Si no se especifica el estilo de ventana de LVS_SHAREIMAGELISTS, el control de vista de lista crea las listas de imágenes de icono y icono pequeño en este momento.
WM_DESTROY Libera los recursos asignados durante WM_CREATE.
WM_ERASEBKGND Borra el fondo de la ventana con el color de fondo actual para el control de vista de lista. Si el color de fondo es el valor de CLR_NONE, el control de vista de lista reenvía el mensaje a la ventana primaria.
WM_GETDLGCODE Devuelve una combinación de los valores DLGC_WANTTAB y DLGC_WANTARROWS.
WM_GETFONT Devuelve el identificador a la fuente de etiqueta actual.
WM_HSCROLL Desplaza horizontalmente el control de vista de lista.
WM_KEYDOWN Procesa la barra espaciadora, ENTRAR y las teclas de dirección y envía un código de notificación LVN_KEYDOWN a la ventana primaria.
WM_KILLFOCUS Vuelve a dibujar el elemento de lista centrado, si existe, y envía un código de notificación de NM_KILLFOCUS a la ventana primaria.
WM_LBUTTONDBLCLK Envía a la ventana primaria un NM_DBLCLK (vista de lista) código de notificación.
WM_LBUTTONDOWN Se procesa de diferentes maneras en función de si se inicia una operación de clic o arrastre. Para determinar qué operación está implicada, el control de vista de lista entra en un bucle de mensajes modal hasta que se suelta el botón o se mueve el mouse. En el caso de un clic, el control de vista de lista puede cambiar qué elemento tiene el foco y qué elementos se seleccionan, teniendo en cuenta la posición del cursor, el estado de las teclas MAYÚS y CTRL, etc. A continuación, el control de vista de lista envía a su ventana primaria una NM_CLICK (vista de lista) código de notificación.
Si el arrastre comienza sobre un elemento, el control de vista de lista selecciona y establece el foco en el elemento. A continuación, envía un código de notificación LVN_BEGINDRAG a la ventana primaria. La ventana primaria es responsable de llevar a cabo realmente la operación de arrastre.
Si el arrastre comienza sobre el fondo de la ventana, el control de vista de lista entra en otro bucle de mensajes modal, lo que permite al usuario formar un rectángulo arrastrando el mouse. Se seleccionan los elementos del rectángulo.
WM_NCCREATE Asigna e inicializa una estructura de datos interna y, a continuación, llama a la función DefWindowProc.
WM_NCDESTROY Libera los recursos asignados por el control de vista de lista. A menos que se use el estilo LVS_SHAREIMAGELISTS, esto incluye eliminar las listas de imágenes pequeñas y de tamaño completo.
WM_NOTIFY Procesa los códigos de notificación de control de encabezado.
WM_PAINT Muestra los elementos de la región de actualización. En el caso de los elementos de devolución de llamada, el control envía primero un código de notificación LVN_GETDISPINFO a la ventana del propietario para solicitar información para mostrar. Si el parámetro wParam no es NULL, el control asume que el valor es un HDC y pinta mediante ese contexto de dispositivo.
WM_RBUTTONDOWN Se procesa del mismo modo que el mensaje de WM_LBUTTONDOWN, salvo que el control envía un código de notificación de NM_RCLICK (vista de lista) (en lugar de NM_CLICK (vista de lista)) y un código de notificación LVN_BEGINRDRAG (en lugar de LVN_BEGINDRAG). Tenga en cuenta que el control procesa el mensaje de WM_RBUTTONUP correspondiente y no lo envía. Por lo tanto, las aplicaciones no pueden ver este mensaje, incluso mediante la subclase del control .
WM_SETFOCUS Vuelve a dibujar el elemento de lista centrado, si existe, y envía un código de notificación de NM_SETFOCUS a la ventana primaria.
WM_SETFONT Guarda el identificador de fuente especificado, reenvía el mensaje a la ventana de encabezado, si existe, y vuelve a dibujar con la nueva fuente.
WM_SETREDRAW Activa o desactiva el dibujo.
WM_TIMER Comienza a editar una etiqueta de elemento. Si el usuario hace clic en la etiqueta del elemento centrado, el control de vista de lista establece un temporizador en lugar de entrar en el modo de edición inmediatamente. El temporizador permite que el control de vista de lista no entrar en modo de edición si el usuario hace doble clic en la etiqueta.
WM_VSCROLL Desplaza verticalmente el control de vista de lista.
WM_WINDOWPOSCHANGED Actualiza las barras de desplazamiento de la ventana. Si la vista actual es icono o vista de icono pequeño y se especifica el estilo LVS_AUTOARRANGE, el control list-view también organizará los elementos de lista.
WM_WININICHANGE Procesa los cambios en las métricas del sistema.