À propos des contrôles de barre d’armature
Un contrôle Rebar fait office de conteneur pour les fenêtres enfants. Il peut contenir une ou plusieurs bandes, et chaque bande peut avoir n’importe quelle combinaison d’une barre de saisie, d’une bitmap, d’une étiquette de texte et d’une fenêtre enfant. Une application affecte une fenêtre enfant(généralement un autre contrôle) à une bande de contrôle de barre d’armature. Lorsque vous repositionnez dynamiquement une bande de contrôle de barre d’armature, le contrôle de barre d’armature gère la taille et la position de la fenêtre enfant affectée à cette bande. En outre, une application peut spécifier une image bitmap d’arrière-plan pour une bande, et le contrôle de barre d’armature affiche la fenêtre enfant de la bande sur la bitmap.
La capture d’écran suivante montre un contrôle de barre d’armature qui a deux bandes. L’une contient une barre d’outils et l’autre une zone de liste déroulante. Les deux bandes ont un préhenseur qui permet de les déplacer et de les redimensionner.
Notes
Le contrôle de barre d’armature est implémenté dans les versions 4.70 et ultérieures de Comctl32.dll.
Bandes de barres d’armature et Fenêtres enfants
Une application définit les caractéristiques d’une bande de barres à l’aide des messages RB_INSERTBAND et RB_SETBANDINFO . Ces messages acceptent l’adresse d’une structure REBARBANDINFO comme paramètre lParam . Les membres de la structure REBARBANDINFO définissent les caractéristiques d’une bande donnée. Pour définir les caractéristiques d’une bande, définissez le membre cbsize pour indiquer la taille de la structure, en octets. Définissez ensuite le membre fMask pour indiquer les membres de structure que votre application remplit.
Pour affecter une fenêtre enfant à une bande, incluez l’indicateur RBBIM_CHILD dans le membre fMask de la structure REBARBANDINFO , puis définissez le membre hwndChild sur le handle de la fenêtre enfant. Les applications peuvent définir la largeur et la hauteur minimales autorisées d’une fenêtre enfant dans les membres cxMinChild et cyMinChild .
Lorsqu’un contrôle de barre d’armature est détruit, il détruit toutes les fenêtres enfants affectées aux bandes qu’il contient. Pour empêcher le contrôle de détruire les fenêtres enfants affectées à ses bandes, supprimez les bandes en envoyant le message RB_DELETEBAND , puis utilisez le message RB_SETPARENT pour réinitialiser le parent à une autre fenêtre avant de détruire le contrôle de barre d’accès.
Interface utilisateur du contrôle rebar
Toutes les bandes de contrôle d’barres d’armature peuvent être redimensionnées, à l’exception de celles qui utilisent le style RBBS_FIXEDSIZE. Pour redimensionner ou modifier l’ordre des bandes dans le contrôle, cliquez et faites glisser la barre de saisie d’une bande. Le contrôle de barre d’armature redimensionne et repositionne automatiquement les fenêtres enfants affectées à ses bandes. En outre, vous pouvez activer la taille d’une bande en cliquant sur le texte de la bande, le cas échéant.
Liste d’images du contrôle de barre d’armature
Si une application utilise une liste d’images avec un contrôle de barre d’armature, elle doit envoyer le message RB_SETBARINFO avant d’ajouter des bandes au contrôle. Ce message accepte l’adresse d’une structure REBARINFO comme paramètre lParam . Avant d’envoyer le message, préparez la structure REBARINFO en définissant le membre cbSize sur la taille de la structure, en octets. Ensuite, si le contrôle de barre d’armature va afficher des images sur les bandes, définissez le membre fMask sur l’indicateur RBIM_IMAGELIST et affectez un handle de liste d’images au membre himl . Si la barre d’armature n’utilise pas d’images de bande, définissez fMask sur zéro.
Transfert de messages de contrôle de la barre d’attente
Un contrôle de barre d’armature transfère tous les messages de fenêtre WM_NOTIFY vers sa fenêtre parente. En outre, un contrôle de barre d’barres transfère tous les messages qui lui sont envoyés à partir de fenêtres affectées à ses bandes, comme WM_CHARTOITEM, WM_COMMAND et autres.