W listbox po kompilacji jak zaznaczymy jakis wiersz z listy jest on otoczony taką rameczką z kresek przerywanych (Focus rect się to chyba nazywa)... jak to usunąć?? (chodzi mi jak to zrobic w Builderze 6) z gory dzieki za pomoc
Przede wszystkim lista musi byc OwnerDraw. W metodzie OnDrawItem dajesz cos takiego:
TCanvas *pCanvas;
pCanvas = ((TListBox *)Control)->Canvas;
pCanvas->FillRect(Rect);
......
if(State.Contains(odFocused))
pCanvas->DrawFocusRect(Rect);
Taaa, a to już zmiana stylu na LBS_NOSEL (czy coś w stylu Selection:None ?) nie wystarczy??
Eppers: chcesz w ogóle nie mieć zaznaczenia, czy tylko nie mieć zaznaczenia na początku??
w programie podswietlane sa 3 linie jednoczesnie ale wewnatrz tego podswietlenia granatowego obramowanie otacza tylko 1 linie a nie wysztskie 3 co daje paskudny efekt :/
zrobiłem tak jak mowiłes i on wpierw dziala ale potem zamalowuje tekst caly i go zaslania tym :/
Taaa, a to już zmiana stylu na LBS_NOSEL (czy coś w stylu Selection:None ?) nie wystarczy??
Nie wystarczy, bo tu chodzilo o focus a nie o zaznaczenie! Dlatego trzeba uzyc DrawFocusRect. Zreszta w winapi tez jest taka funkcja i podobnie dziala: kolejne wywolania funkcji powoduja rysowanie i usuwanie focusa (funkcja XOR).
Wlasnie dlatego trzeba sprawdzic czy focus jest aktualnie wyswietlany i jezeli tak, to wywolac ta funkcje. No a zeby sprawdzic, to musi byc OwnerDraw, innego sposobu nie znam.
Eppers: Jezeli dobrze zrozumialem, to chodzi o zrobienie takiej listy jak ja zrobilem w moim playerze, robilem to dokladnie w taki sposob jak ci napisalem ... zreszta mozesz pociagnac go z www.SuperPlayer.prv.pl i zobaczyc czy o to ci chodzilo.
wydaje mi sie ze wlasnie o to chodzilo bo nie widze focus rect na tej liscie zeby bylo
wiec wlasnie jak taka rzecz zrobic? bo wpisalem tak jak to mowisz ale on to zarysowuje jak juz wspomnialem :/
No to styl OwnerDraw, a kod ci podalem wyzej (a wlasciwie podalem ta czesc ktora odpowiada za usuwanie focusa, bo calosc bylaby za dluga). A jezeli masz jeszcze jakies watpliwosci to w pomocy do BCB jest przyklad kodu jak uzywa sie ListBox-ów w trybie OwnerDraw.
//dopisane
No pewnie ze ci zamalowuje bo to nie jest caly kod (widziales te kropki ... ?). Zajrzyj do helpa BCB, tam masz gotowy przyklad jak uzywa sie stylow OwnerDraw, a na koniec linijka z DrawFocusRect - to tyle w tym temacie...