Traitement des messages List-View par défaut
Cette section répertorie le traitement des messages de fenêtre effectué par un contrôle d’affichage de liste.
Traitement de message
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é à 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 en plus de WM_NCCREATE. Si le style de fenêtre LVS_SHAREIMAGELISTS n’est pas spécifié, le contrôle d’affichage de liste crée les listes d’icônes et de petites 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 horizontalement le contrôle list-view. |
WM_KEYDOWN | Traite les touches SPACEBAR, ENTRÉE et flèche 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 dans une boucle de message modale jusqu’à ce que le bouton soit relâché ou que la souris soit déplacée. En cas de 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, etc. Ensuite, le contrôle d’affichage de liste envoie à sa fenêtre parente un code de notification NM_CLICK (affichage de 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. Ensuite, il envoie 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 list-view. À moins que le style LVS_SHAREIMAGELISTS ne soit utilisé, cela inclut la suppression des listes d’images de taille réelle 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’est pas 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 , à ceci près que le contrôle envoie un code de notification NM_RCLICK (affichage de liste) (au lieu de NM_CLICK (affichage de 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 sous-classant 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 effectue un repeint à 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 prioritaire, le contrôle d’affichage de liste définit un minuteur au lieu d’entrer immédiatement en mode édition. Le minuteur permet au contrôle d’affichage de liste de ne pas passer en mode édition si l’utilisateur double-clique sur l’étiquette. |
WM_VSCROLL | Fait défiler verticalement le contrôle d’affichage de liste. |
WM_WINDOWPOSCHANGED | Mises à 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. |