[C++ WinApi] ListView - uchwyt do BATONA

0

Ktoś wie jak w kontrolce ListView dostac uchwyt do przycisku nad kolumną? Chciałbym nadać mu OWERDRAWa. Nadanie stylu LVS_OWNERDRAWFIXED daje mozliwość własnego rysowania tylko itemów, zgadza się? A ja chcę przyciski! :)
Kto wie?

0

O nagłówek kolumny Ci chodzi??
ListView_GetHeader, LVM_GETHEADER

0

marcinEc: W międzyczasie doszedłem do tego :D, ale dzięki.
Udaje mi się rysować na każdym "nagłówku" kolumny, ale nie mogę na tym który jest za ostatnią kolumną. No i nie wiem jak zmienić ten odstęp pomiędzy kolumnami. Chciałbym np. zamiast pionowej krechy oddzielającej kolumny narysować np. kropeczki :)
Dzięki za odpowiedzi!

0

Pobierz wielkosc headera i zamaluj caly, nastepnie przerysuj kolejno dla kazdej kolumny header. Ewentualnie zamaluj obszar o szerokosci listy i wysokosci naglowka + dla kazdej kolumny headery.
Co by kropeczki narysowac - odrysuj liste, i kropeczki wysokosci listy i szerokosci kolumny i tak dla kazdej kolejno. To samo wczesniej dla headera. Jesli chcesz wiekszy odstep, musisz praktycznie calkowicie przerysowac cala liste.

0

Zrobiłem i jest dobrze. A zrobiłem to tak:
1 - subklasowałem procedurę Header'a
2 - subklasowałem procedurę ListView (rodzic Header'a)
3 - w subklasowanej procedurze ListView obsługuję WM_DRAWITEM, w którym rysowane są item'y Header'a najpierw ustawione przez Header_SetItem(...) na styl HDF_OWNERDRAW
4 - w subklasowanej procedurze Header'a obsługuję WM_PAINT, w którym zamalowuję separatory item'ów i linie pod item'ami, których WM_ERASEBKGND nie zamalowywało oraz w pętli dla każdego itemu wysyłam komunikat WM_DRAWITEM do subklasowanej procedury ListView.

I działa tak jak chciałem. Dzięki za pomoc i chęć pomocy! :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1