Ma question concerne les zones de liste déroulante dans les applications Windows MFC.Zone de liste déroulante dans une application MFC
La partie déroulante de la zone de liste déroulante contient des éléments composés d'un bitmap et d'une chaîne.
Parfois, les chaînes sont trop longues et je dois ajuster la largeur de la partie déroulante de la liste déroulante en utilisant la méthode CComboBox::SetDroppedWidth()
.
Mon problème est que lorsque la zone de liste déroulante est proche du bord droit de l'écran de l'ordinateur, la partie droite de la liste déroulante est masquée (voir image_1
et image_2
ci-dessous). Je voudrais qu'il se comporte comme dans Excel (voir image_3
ci-dessous) ce qui signifie que je voudrais que la liste déroulante soit décalée en conséquence afin que tous ses éléments puissent être vus sans être recadrés.
Comment cela peut-il être réalisé?
image_1: partie droite de la liste déroulante n'est pas caché
image_2: près de l'ordinateur bord droit, la partie droite de la liste déroulante est caché
image_3: Zone de liste déroulante Excel
=========================================== ======================
================ =====================================================
EDIT 2
Ok. J'ai oublié de mentionner que m_cbXmodels
est un objet CComboBoxEx
. C'est pourquoi les poignées sont NULL. Je pouvais obtenir les poignées via GetComboBoxCtrl()
...
Copie possible de [Forcer une liste déroulante à "dropdown" ci-dessus au lieu de ci-dessous] (https://stackoverflow.com/questions/36307412/forcing-a-combobox-to-dropdown-above-instead-of-below) –