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.
Message | 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 LVS_SHAREIMAGELISTS , el control de vista de lista crea el icono y las listas de imágenes de icono pequeños 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 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 de DLGC_WANTTAB y DLGC_WANTARROWS. |
WM_GETFONT | Devuelve el identificador a la fuente de etiqueta actual. |
WM_HSCROLL | Desplaza el control de vista de lista horizontalmente. |
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 NM_KILLFOCUS a la ventana primaria. |
WM_LBUTTONDBLCLK | Envía a la ventana primaria un código de notificación de NM_DBLCLK (vista de lista ). |
WM_LBUTTONDOWN | Se procesan de maneras diferentes en función de si se está iniciando una operación de arrastrar o hacer clic. Para determinar qué operación está implicada, el control de vista de lista entra en un bucle de mensaje 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 están seleccionados, 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 un código de notificación de NM_CLICK (vista de lista). 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 de LVS_SHAREIMAGELISTS , esto incluye eliminar las listas de imágenes de tamaño completo y pequeños. |
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 procesó de la misma manera 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 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 pintar con la nueva fuente. |
WM_SETREDRAW | Activa o desactiva el dibujo. |
WM_TIMER | Comienza la edición de 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 modo de edición inmediatamente. El temporizador permite que el control de vista de lista no entre 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 | Novedades 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 de vista de lista también organizará los elementos de lista. |
WM_WININICHANGE | Procesa los cambios en las métricas del sistema. |