Bonjour,
Je suis en train de créer une liste d'icônes horizontales avec un affichage différent que celui proposer avec la CListCtrl.
Je voulais donc faire un OwnerDraw de la liste pour y arriver en utilisant le style LVS_OWNERDRAWFIXED.
Mais il y a un truc que je ne comprend pas. J'ai mis à des points d'arrêt dans MeasureItem (ON_WM_MEASUREITEM_REFLECT) et dans DrawItem (ON_WM_DRAWITEM_REFLECT). Cependant le programme s'arrête que dans MeasureItem.
Ca maintenant plusieurs heures que je cherche partout et je ne trouve pas et je suis maintenant à cours d'idée.
Je me retourne donc vers vous.
Auriez vous une idée pour résoudre mon problème.
Header
Corps
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class CPropertySheetIconsBarWnd : public CListCtrl [...] //{{AFX_MSG(CPropertySheetIconsBarWnd) afx_msg void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); afx_msg void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct); afx_msg void OnItemchanged ( NMHDR * pNotifyStruct, LRESULT* result ); //}}AFX_MSG DECLARE_MESSAGE_MAP() [...]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 [...] BEGIN_MESSAGE_MAP(CPropertySheetIconsBarWnd, CListCtrl) //{{AFX_MSG_MAP(CPropertySheetIconsBarWnd) ON_WM_DRAWITEM_REFLECT() ON_WM_MEASUREITEM_REFLECT() ON_NOTIFY_REFLECT(LVN_ITEMCHANGED, OnItemchanged) //}}AFX_MSG_MAP END_MESSAGE_MAP() void CPropertySheetIconsBarWnd::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) { CDC dc; dc.Attach ( lpDrawItemStruct->hDC ); dc.Rectangle ( &lpDrawItemStruct->rcItem ); dc.Detach ( ); } void CPropertySheetIconsBarWnd::MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct) { lpMeasureItemStruct->itemWidth = 100; lpMeasureItemStruct->itemHeight = 100; } [...]
Partager