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. |