| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Размер клиентской области |
| Автор: ZIFIR 8.12.2010, 22:00 |
| Необходимо установить размер клиентской области окна. Как это можно сделать? Можно изменить размеры MainFrame в CREATESTRUCT, но это же получается подгон. |
| Автор: Earnest 9.12.2010, 07:59 |
| Смотря что ты хочешь: можно изменить размер клиентской области за счет "нестандартной" рамки. Или, если рамка и прочие элементы стандартны, именно "подогнать" размер фрейма под клиентскую область. Удобнее всего это делать в PreCreateWindow и использовать функцию AdjustWindowRect. |
| Автор: ZIFIR 9.12.2010, 23:39 |
| Earnest, спасибо, это я и хотел узнать. Теперь еще вопрос. Разбираюсь с системами координат и режимами отображения. Цитата: (Айвор Хортон VS 2005 Базовый курс) "В режиме отображения MM_LOENGLISH ед. изм. в доль осей составляют 0,01 дюйма, так что точка (50,-100) находится на пол дюйма влево и 1 дюйм вниз. Объект всегда имеет один и тотже размер на экране, независимо от разрешения монитора" Нарисовал линию в клиентской области, попробовал поменять разрешение экрана, линия изменила размер. Растолкуйте. |
| Автор: Earnest 10.12.2010, 08:45 |
| Может, перо не геометрическое? По-моему, косметическое перо в экранных пикселах рисуется. Кроме того, автор наверняка под размером подразумевает нечто более существенное: например, размер прямоугольника или эллипса. |
| Автор: ZIFIR 22.12.2010, 18:56 | ||
В PreCreateWindow устанавливаю размер желаемой клиентской области окна
После AdjustWindowRect top=75, bottom=403, left=97, right=403. Когда вызываю GetClientRect top=0, bottom=351, left=0, right=393 Режим MM_TEXT Как же сделать размер клиентской области 300х300? |
| Автор: ZIFIR 23.12.2010, 16:54 | ||
Решил проблему так:
top и left требуемого клиентского прямоугольника необходимо сделать равными 0. И еще учесть расширенный стиль dwExStyle. Только тогда получил требуемое окно |
| Автор: Earnest 24.12.2010, 11:37 | ||
А я тебе что рекомендовала? |