TListView, CheckBoxes & OwnerDraw

0

Witam wszystkich. Mam problemik z obsłużeniem TListView w stylu vsReport, gdzie OwnerDraw = True.

Potrzebuję własnoręcznie rysować checkbox'y, więc potrzebuję sprawdzić podczas zdarzenia OnMouseDown albo OnClick, gdzie dokładnie kliknięto i przerysować na nowo kliknięty item.

Żeby było mniej roboty, item ma wysokość 20 px, więc potrzebuję sprawdzić, czy kliknięto w kwadracik 20x20 px z lewej strony itemu i przerysować kliknięty item od nowa.

Jeśli kliknięto w kwadracik, wtedy trzeba będzie ustawić Checked danego itemu na True lub False.

Wie ktoś jak to sprawdzić? Bardzo prosze o pomoc.
Dziękuję z góry, pozdrawiam.

0

tak napisales ze wlasciwie nie wiadomo o co dokladnie pytasz....
o to czy kliknieto w checkbox? przeciez w onMouseDown/Up masz x i y, w przypadku Twojego listview wystarczy sprawdzic czy x<20.

btw. jesli beziesz chcial narysowac checkboxa (lub inna kontrolke) ktora wyglada jak systemowa (w sensie, ze np zalezna od wlaczonych kompozycji, od systemu operacyjnego itd..) zainteresuj sie funkcja DrawFrameControl():
http://msdn.microsoft.com/en-us/library/dd162480(v=vs.85).aspx

0

No tak, mam koordynaty ale nie mam indeksu itemu, na który klikam. Jak go pobrać w tym zdarzeniu?

0

ehhh... nic sam nie kombinujesz. a powinienes jesli chcesz byc programista...
zobacz:
wpisujesz w kodzie np ListView1 i wciskasz kropke. pojawia Ci sie lista dostepnych pol i metod. czytasz wszystkie w poszukiwaniu czegos co moze sie przydac...
czytasz i znajdujesz "GetItemAt()" ktore przyjmuje dwa parametry: x i y. chyba latwo sie domyslec ze podajesz wspolrzedne. a co zwraca? jesli sie nie domyslasz to sprawdz doswiadczalnie lub po prostu zapytaj googli.
uwierz.. kazdy na forum Ci to powie: kombinuj sam a zaoszczedzisz duzo czasu + wiele sie nauczysz.

0

Masz rację cimak, to załatwia całą sprawę.

Wiesz, dużo sam kombinuję, dużo rzeczy w ostatnich dniach sam zrobiłem. Pracuję na razie nad oprogramowaniem TMainMenu w OwnerDraw i po prostu dużo czasu zajmuje mi opracowanie uniwerslnego wyglądu dlatego napisałem ten temat tutaj, by nie mysleć o dwóch naraz. Podzieliłem sobie zadania na to co wiem - robię teraz, czego nie wiem, piszę tu na forum.

Dziękuję za zainteresowanie i pomoc.
Pozdrawiam.

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