2009-03-09 8 views
1

Je rencontre actuellement un problème très étrange avec un CComboBox utilisé dans un CFormView.CComboBox sélectionne automatiquement le texte après l'appel à MoveWindow

Après avoir ajouté des chaînes à la combobox (créé avec WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWN | CBS_SORT | CBS_AUTOHSCROLL), je sélectionne une entrée via CComboBox::SetCurSel et redimensionner la zone de liste déroulante via MoveWindow dans le gestionnaire OnSize() de la CFormView classe dérivée.

Dès que j'apporte l'appel à MoveWindow, le texte entier dans la partie d'édition de la liste déroulante est sélectionné. Si je supprime l'appel à MoveWindow, le texte n'est pas sélectionné. Cela arrive non seulement pour un, mais pour tous les comboboxes utilisés.

Je suis en quelque sorte perdu à ce stade. Tout indice est très apprécié!

Répondre

3

La sélection de tout le texte est le comportement standard de Windows lorsqu'une zone de liste déroulante obtient le focus. Je suppose que MoveWindow réinitialise le focus sur le contrôle.

Essayez d'utiliser CComboBox :: SetEditSel pour supprimer la sélection après MoveWindow.

+0

OK, merci. J'ai pensé que je faisais quelque chose de mal et j'ai manqué une option pour empêcher le texte d'être sélectionné. – fhe

Questions connexes