2010-11-04 20 views
8

Wygląda na to, że MFC ma poważny brak menedżerów/rozmiarów układów. Trudno uwierzyć, że każda szanująca się biblioteka UI byłaby pozbawiona rozmiarów, ale proszę bardzo. Znalazłem coś, co zajmie się zwykle układem pudełek, ale to, czego nie znalazłem, to sizer, który pomoże, gdy będziesz potrzebował wyrównania w pionie i poziomie podczas rozszerzania.Układ siatki, flexgridu lub siatki dla MFC

mam najwięcej informacji stąd:

layout manager for MFC dialog apps

Mam prane w internecie i każdy poszukiwania MFC i siatki/cokolwiek/kończy się wysłaniem mnie na pęczek widgetów sieciowych, a nie klasyfikatory. Czy jest coś takiego?

+0

Trudno wybrać dwie odpowiedzi, które mówią, że tak nie jest. Obie są poprawne. –

+0

Wybrałem tego, który pierwszy powiedział: p –

Odpowiedz

2

Nie słyszałem o odpowiedniej, w pełni funkcjonalnej bibliotece sizera dla MFC. I nie uważam, że jest coś znacznie lepszego niż opcje wymienione w tym połączonym pytaniu.

W mojej opinii , wątpię, że kiedykolwiek coś takiego zostanie zrobione w tym momencie. Inne dobrze znane środowiska GUI mają już wbudowane domyślne funkcje sizerów, a także uzupełniają inne braki MFC w tym samym czasie. Myślę, że wielu ludzi powiedziałoby, że nie warto teraz tworzyć takich rzeczy dla MFC. (Nawet kiedyś zacząłem pracować nad jakąś ogólną biblioteką rozmiarów, która mogłaby zostać zastosowana w MFC, ale ostatecznie straciłem ambicję i odłożyłem ją na bok.)

Co więcej, czuję, że Microsoft sam zapisał MFC jako dziedzictwo , a zamiast tego przeniósł się do .NET/C#/WPF dla rozwoju GUI. Przecież spójrz, jak daleko posunęły się nowsze technologie w ciągu ostatnich 10 lat, podczas gdy w tym samym czasie MFC prawie się nie zmieniło poza przypadkowym dodaniem pakietu funkcji.

Jeśli jest to w ogóle możliwe, proponuję rozważyć przejście do bardziej nowoczesnego środowiska C++ (takiego jak Qt) lub do .NET/C#/WPF (przynajmniej dla części aplikacji GUI).

+0

Mogę się z tobą zgodzić, ale już teraz polecam zmianę z innego środowiska (WX), ponieważ napotkaliśmy problemy spowodowane głównie międzyplatformowym charakterem tej biblioteki . Biblioteka dokowania w MFC jest również DUŻO ładniejsza. Muszę polecać wyższym i muszę to robić szczerze, a następnie podejmują decyzję. MFC wygląda teraz, jak najmniej kłopotliwa opcja i prawdopodobnie utknę w tym. Mam jednak członka zespołu badającego tę opcję. –

3

Wpadłem na ten "problem" kilka lat temu używając WTL. Miałem dość skomplikowanych programów obsługi WM_SIZE, więc zagryzłem kulę i zaimplementowałem kilka kontenerów układu i dostosowałem kontrolki Win32 i moje własne do kontenerów układu.

Zasadniczo stworzyłem podklasy dla każdej kontroli i zaimplementowałem własny protokół dla "MinSize, MaxSize, PreferredSize". Niektóre kontrole są trudne do wdrożenia, ale nic nie jest niemożliwe. Nie było to wcale trudne, więc możesz chcieć zastanowić się i zrobić to. MFC nie jest tak elastyczny jak ATL/WTL pod względem podklasy, ale jest wystarczająco elastyczny.

Niestety, nie mogę udostępnić Ci kodu. :/Dodałem nawet prosty język znaczników XML, co było całkiem miłe.

+0

Czy w międzyczasie możesz udostępnić kod lub przynajmniej podzielić się swoim podejściem? Może być pomocny przed samodzielnym opracowaniem czegoś. –