2017-09-19 1 views
0

Dans MFC, est-il possible de créer une zone de liste déroulante multi-colonnes en sous-classant uniquement sa zone de liste.Est-il possible de créer une combobox multi-colonnes en ne sous-classant que sa liste déroulante?

Dans les sites Web Codeproject et Codeguru, j'ai obtenu des échantillons uniquement avec CComboBox dérivé avec le style ownerdraw.

+0

Et pourquoi ne pas les utiliser? Dites-nous la raison pour laquelle vous demandez quand il existe des solutions existantes! – xMRi

+0

Dans mon application, si j'utilise CComboBox avec ownerdraw, j'ai besoin de faire beaucoup de changements dans le code. S'il est réalisable en sous-classant seulement sa liste, le changement de code sera moins pour cette raison seulement j'ai demandé. – user566

+0

En utilisant le MFC, il devrait être compliqué de simplement remplacer le nom de classe et la sous-classe. Quels autres changements attendez-vous? Bien sûr, vous devez écrire du code pour montrer les données que vous voulez ... mais plus? – xMRi

Répondre

1

La partie "liste" d'un contrôle de zone de liste déroulante n'est PAS un contrôle de zone de liste. En dehors de cela, les contrôles de la combo-boîte n'ont pas vraiment de "colonnes", ce qui signifie que vous ne pouvez pas stocker de données au niveau des colonnes (il n'y a qu'une seule chaîne ou "item" par ligne). ne peut être que basé sur le propriétaire. Donc, si les spécifications de votre application ont changé (nécessitant maintenant le formatage des colonnes), vous devriez plutôt envisager d'utiliser un autre type de contrôle. Cependant, une implémentation par le propriétaire n'est pas vraiment difficile, surtout si vous avez des éléments de hauteur fixes; il ne devrait pas vraiment exiger des changements importants à votre application, car il ne concerne que ce contrôle spécifique.