Я пытаюсь создать полноэкранное окно панели управления с множеством элементов управления: кнопками, ползунками, списками и т. д.
Я могу создать диалоговое окно и добавить в него элементы управления, но все масштабируется в диалоговых единицах. Я просто хочу создать окно в графическом редакторе, которое масштабируется в пикселях, а не в производных единицах, таких как диалоговые единицы.
Я могу расположить все элементы управления в графическом редакторе, а затем программно изменить размер окна на весь экран с помощью SetWindowPos, но диалоговое окно в графическом редакторе не будет выглядеть так же, как конечный продукт. Я хочу, чтобы в графическом редакторе был WYSIWIG.
Это внешний интерфейс для небольшого специализированного компьютера управления приборами под управлением XP. SDK написан в MFC. Мне приходится часто добавлять и изменять элементы управления. Экран небольшой, 7 дюймов @ 800 x 600, поэтому, конечно, я разрабатываю программу на другом компьютере. Я не хочу, чтобы окно программы менялось при смене монитора - я хочу, чтобы оно было фиксированным на 800 x 600, и я хочу, чтобы элементы управления были фиксированными по размеру и расположению.
Должен быть способ - это более простой функционал, чем функциональность по умолчанию.
Спасибо.
2 ответа
Единицы диалога основаны на свойствах шрифта, используемого в диалоге. Горизонтальная единица диалога равна 1/4 средней ширины текущего шрифта.
Вертикальная единица диалога равна 1/8 средней высоты символа текущего шрифта.
Я бы рекомендовал использовать метод 2 (MapDialogRect() для диалогового окна 4 x 8) для определите, сколько DLU 800x600 соответствует на вашем выходном дисплее, затем создайте справочную форму, равную этому размеру. Позже вы сможете использовать эту справочную форму при разработке.
P.s. Я рад, что Visual Studio больше не выделяет диалоговые блоки, поскольку с ними всегда было сложно иметь дело.
Спасибо. Я смог создать эталонную форму, просто изменяя размер формы вручную в графическом редакторе снова и снова, пока она точно не заполнила экран... Без шуток, что диалоговые блоки - это боль. Судя по вашему ответу, я думаю, что в текущей Visual Studio есть лучший способ сделать это? (Это мой первый опыт программирования под Windows).
Похожие вопросы
Новые вопросы
visual-studio
Используйте этот тег, если у вас есть определенный вопрос о функциях и функциональности Visual Studio. Не используйте этот тег по вопросам, касающимся кода, который просто случился, чтобы написано в Visual Studio. Подумайте о том, чтобы пометить точную область технологии Вашего вопроса Ссылки, а также помечения более конкретной версии Visual Studio. Пожалуйста, укажите вашу точную версию VS, выпуск и уровень обновления в своем вопросе. Не используйте этот тег на вопросы относительно кода VS.