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.

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.