2009-10-27 9 views
5

Po pierwsze, co chcę: Możliwość wyświetlania siatki z wieloma kolumnami, każda komórka ma niestandardowe wywołanie renderowania. Możesz więc użyć takiej kontroli, by wyświetlać swoje ekwipunki w grze lub coś takiego, jak zachowanie w Google Chrome, gdzie pokazuje siatkę popularnych stron, które odwiedzasz.Czy MFC ma wbudowany układ sterowania siatką?

Grałem z CListCtrl i chociaż mogę uzyskać niestandardową zdolność renderowania na każdym elemencie, nie mogę uzyskać pracy z kolumnami - mówiąc 3 pozycje w rzędzie. Sterowanie ma metody związane z kolumną, ale myślę, że są one przeznaczone specjalnie dla wbudowanej funkcjonalności, w której różne atrybuty elementu są automatycznie wyświetlane w każdej kolumnie ... nie dla zapewnienia ogólnej kontroli siatki.

Czy takie funkcje istnieją w MFC? Jeśli nie, to zastanawiam się, czy najłatwiej jest mi wstawić każdy z wierszy jako element ... a następnie renderowanie niestandardowe rysuje wiele komórek w rzędzie, mogę też zrobić niestandardowy interfejs użytkownika, aby obsługiwać klikanie komórek .

Ale naprawdę chcę mieć możliwość tworzenia niestandardowego sterowania i dodawania go jako elementu do listy - na przykład w programie Flex - więc operacje we/wy itd. Są automatycznie obsługiwane.

Wszelkie mile widziane porady/informacje ...

Odpowiedz

2

nie jestem świadomy wbudowaną kontrolą, ale myślę, że należy przyjrzeć this. Artykuł opisuje szczegółowo funkcjonalność w pełni funkcjonalnego kontrolera siatki MFC, pochodzącego z CWnd, do wyświetlania danych tabelarycznych.

+0

Natknąłem się na tę kontrolę; wydaje się, że prawdopodobnie robi to, co jest potrzebne, ale może być trudnością w dostaniu się do naszego projektu. –

+0

Bez bólu, bez wzmocnienia – luvieere

+0

Używam tego w komercyjnej aplikacji. Wdrożenie jest łatwe. Było kilka drobnych błędów, które musieliśmy naprawić. Ogólnie świetna kontrola i całkowicie konfigurowalna - masz źródło. –

1

YOUR_LIST_CONTROL .SetExtendedStyle (LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP | LVS_EX_GRIDLINES);

Myślę, że to ci pomoże