Макет Grid, flexgrid или gridbag для MFC - PullRequest
8 голосов
/ 04 ноября 2010

MFC, похоже, испытывает серьезную нехватку менеджеров / разметчиков компоновки.Трудно поверить, что у любой уважающей себя библиотеки пользовательского интерфейса не будет размеров, но вы идете.Я нашел кое-что, что позаботится об обычной компоновке бокса, но я не нашел измеритель, который поможет, когда вам нужно выровнять вещи как по вертикали, так и по горизонтали, когда они расширяются.* Я получил большую часть информации здесь:

менеджер макетов для диалоговых приложений MFC

Я просмотрел сеть и каждый поиск MFC и сетки / чего-либо / заканчивалсяпосылая мне кучу виджетов сетки, а не sizer.Есть ли где-нибудь такая вещь?

Ответы [ 2 ]

3 голосов
/ 13 ноября 2010

Я столкнулся с этой "проблемой" пару лет назад, используя WTL.Я был сыт по горло сложными обработчиками WM_SIZE, поэтому я укусил маркер и реализовал несколько контейнеров макетов и адаптировал элементы управления Win32 и некоторые свои собственные к контейнерам макетов.

Я в основном сделал подклассы для каждого элемента управленияи реализовал свой собственный протокол для «MinSize, MaxSize, PreferredSize».Некоторые элементы управления сложно реализовать, но нет ничего невозможного.Это было не так сложно сделать, так что вы можете подумать и сделать это.MFC не так гибок, как ATL / WTL в отношении подклассов, но он достаточно гибок.

К сожалению, я не могу поделиться с вами кодом.: / Я даже добавил простой язык разметки XML сверху, что было довольно приятно.

2 голосов
/ 05 ноября 2010

Я также не слышал о надлежащей полнофункциональной библиотеке sizer для MFC.И я не верю, что есть что-то намного лучше, чем варианты, упомянутые в этом связанном вопросе.

По моему мнению , я сомневаюсь, что что-нибудь подобное когда-либо будет сделано в этот момент.Другие хорошо зарекомендовавшие себя структуры графического интерфейса уже имеют надлежащие функции сортировщика, интегрированные по умолчанию, и в то же время компенсируют многие другие недостатки MFC.Я думаю, что многие скажут, что сейчас не стоит разрабатывать такие вещи для MFC.(Я даже однажды начал работать над своего рода универсальной библиотекой размеров, которая могла бы быть применена к MFC, но в конечном итоге утратила амбиции и отложила ее в сторону.)

Более того, я чувствую, что сами Microsoft списали MFC какнаследие, и вместо этого перешел в пользу .NET / C # / WPF для разработки графического интерфейса.В конце концов, посмотрите, как далеко продвинулись эти новые технологии за последние 10 лет или около того, в то же время MFC практически не изменился, за исключением случайного добавления пакета функций.

Если это вообще возможноЯ бы посоветовал перейти на более современную среду C ++ (например, Qt) или .NET / C # / WPF (по крайней мере, для части приложений с графическим интерфейсом).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...