Traitement des messages par défaut List-View
Cette section répertorie le traitement des messages de fenêtre effectué par un contrôle d’affichage de liste.
Traitement des messages
Le tableau suivant décrit le traitement des messages de fenêtre effectué par un contrôle d’affichage de liste.
Message | Traitement effectué |
---|---|
WM_CHAR | Recherche un élément d’affichage de liste qui commence par le caractère spécifié et, si l’élément est trouvé, sélectionne et définit le focus sur l’élément. Plusieurs caractères reçus dans un intervalle de délai d’attente, actuellement fixés à une seconde, sont concaténés et le contrôle d’affichage de liste recherche un élément qui commence par la chaîne résultante. |
WM_COMMAND | Traite les codes de notification EN_UPDATE et EN_KILLFOCUS et transfère toutes les autres notifications de contrôle de modification à la fenêtre parente. |
WM_CREATE | Effectue l’initialisation supplémentaire pour WM_NCCREATE. Si le style de fenêtre LVS_SHAREIMAGELISTS n’est pas spécifié, le contrôle d’affichage de liste crée l’icône et les petites listes d’images d’icônes à ce stade. |
WM_DESTROY | Libère les ressources allouées pendant WM_CREATE. |
WM_ERASEBKGND | Efface l’arrière-plan de la fenêtre à l’aide de la couleur d’arrière-plan actuelle pour le contrôle d’affichage de liste. Si la couleur d’arrière-plan est la valeur CLR_NONE, le contrôle d’affichage de liste transfère le message à la fenêtre parente. |
WM_GETDLGCODE | Retourne une combinaison des valeurs DLGC_WANTTAB et DLGC_WANTARROWS. |
WM_GETFONT | Retourne le handle à la police d’étiquette actuelle. |
WM_HSCROLL | Fait défiler le contrôle d’affichage de liste horizontalement. |
WM_KEYDOWN | Traite la barre d’espace, l’entrée et les touches de direction et envoie un code de notification LVN_KEYDOWN à la fenêtre parente. |
WM_KILLFOCUS | Repeint l’élément de liste prioritaire, le cas échéant, et envoie un code de notification NM_KILLFOCUS à la fenêtre parente. |
WM_LBUTTONDBLCLK | Envoie à la fenêtre parente un code de notification NM_DBLCLK (affichage liste). |
WM_LBUTTONDOWN | Traité de différentes manières selon qu’une opération de clic ou de glisser est lancée. Pour déterminer l’opération impliquée, le contrôle d’affichage de liste entre une boucle de message modale jusqu’à ce que le bouton soit libéré ou que la souris soit déplacée. Dans le cas d’un clic, le contrôle d’affichage de liste peut modifier l’élément qui a le focus et les éléments sélectionnés, en tenant compte de la position du curseur, de l’état des touches Maj et Ctrl, et ainsi de suite. Ensuite, le contrôle d’affichage de liste envoie à sa fenêtre parente un code de notification NM_CLICK (affichage liste). Si le glissement commence sur un élément, le contrôle d’affichage de liste sélectionne et définit le focus sur l’élément. Il envoie ensuite un code de notification LVN_BEGINDRAG à la fenêtre parente. La fenêtre parente est responsable de l’exécution de l’opération de glissement. Si le glissement commence sur l’arrière-plan de la fenêtre, le contrôle d’affichage de liste entre une autre boucle de message modale, ce qui permet à l’utilisateur de former un rectangle en faisant glisser la souris. Les éléments du rectangle sont sélectionnés. |
WM_NCCREATE | Alloue et initialise une structure de données interne, puis appelle la fonction DefWindowProc. |
WM_NCDESTROY | Libère les ressources allouées par le contrôle d’affichage de liste. Sauf si le style LVS_SHAREIMAGELISTS est utilisé, cela inclut la suppression des listes d’images de taille complète et de petite taille. |
WM_NOTIFY | Traite les codes de notification de contrôle d’en-tête. |
WM_PAINT | Affiche tous les éléments de la région de mise à jour. Pour les éléments de rappel, le contrôle envoie d’abord un code de notification LVN_GETDISPINFO à la fenêtre propriétaire pour demander des informations d’affichage. Si le paramètre wParam n’a pas la valeur NULL, le contrôle suppose que la valeur est un HDC et peint à l’aide de ce contexte d’appareil. |
WM_RBUTTONDOWN | Traité de la même façon que le message WM_LBUTTONDOWN, sauf que le contrôle envoie un code de notification NM_RCLICK (affichage liste) (au lieu de NM_CLICK (affichage liste) et un code de notification LVN_BEGINRDRAG (au lieu de LVN_BEGINDRAG). Notez que le contrôle traite le message WM_RBUTTONUP correspondant et ne le distribue pas. Les applications ne peuvent donc pas voir ce message, même en subclassant le contrôle. |
WM_SETFOCUS | Repeint l’élément de liste prioritaire, le cas échéant, et envoie un code de notification NM_SETFOCUS à la fenêtre parente. |
WM_SETFONT | Enregistre le handle de police spécifié, transfère le message à la fenêtre d’en-tête, le cas échéant, et repaint à l’aide de la nouvelle police. |
WM_SETREDRAW | Active ou désactive le redessinage. |
WM_TIMER | Commence la modification d’une étiquette d’élément. Si l’utilisateur clique sur l’étiquette de l’élément ciblé, le contrôle d’affichage de liste définit un minuteur au lieu d’entrer immédiatement en mode d’édition. Le minuteur permet au contrôle d’affichage de liste de de ne pas entrer en mode d’édition si l’utilisateur double-clique sur l’étiquette. |
WM_VSCROLL | Fait défiler le contrôle d’affichage de liste verticalement. |
WM_WINDOWPOSCHANGED | Met à jour les barres de défilement de la fenêtre. Si l’affichage actuel est une icône ou une petite icône, et que le style LVS_AUTOARRANGE est spécifié, le contrôle d’affichage de liste organise également les éléments de liste. |
WM_WININICHANGE | Traite les modifications apportées aux métriques système. |