Dans un modèle de boîte de dialogue, j'ai placé une zone de liste, car la zone de liste cochée n'est pas affichée dans les options de disposition visuelle. Je l'ai mis à dessiner et à configurer avec DDX, en changeant la variable de classe associée de type CListBox à CCheckListBox - en d'autres termes les seules modifications que je fais de ce que l'assistant fait pour moi sont définies owner-draw, et chnage le membre type de variable.MFC: les éléments CCheckListBox se chevauchent
dans OnInitDialog
méthode de mon dialogue, je puis tester avec:
m_List.AddString(_T("One"));
m_List.AddString(_T("Two"));
m_List.AddString(_T("Three"));
m_List.AddString(_T("Four"));
m_List.SetCheck(1,1);
Quand je lance la liste est là, avec 4 articles et une vérification, avec les cordes à droite. Mais, les hauteurs des objets sont fausses. Il semble que la hauteur de la case à cocher est utilisée pour déterminer la hauteur de l'objet, ce qui entraîne le chevauchement du texte de l'élément ci-dessous.
Le comportement par défaut de la classe ne devrait-il pas être compris, sans que je doive régler individuellement la hauteur de chaque élément?