Проблема с отображением программного обеспечения
Использование VB6
Настройка отображения моего программного обеспечения по умолчанию: "800 x 600"
Клиенты, имеющие различные настройки отображения, такие как "800 x 600", "1366 x 768", "1280 x 768"
Клиент, использующий программное обеспечение с настройкой дисплея более 800 x 600, означает, что программное обеспечение не полноэкранно. Программное обеспечение отображает 75% ширины монитора.
Когда я вручную изменяю размер программного обеспечения в соответствии с дисплеем, изображения отображаются очень большими.
Как отобразить программное обеспечение в полноэкранном режиме в соответствии с размером дисплея монитора.
Нужна помощь по коду
3 ответа
Простой вариант - предоставить пользователям возможность максимизировать вашу форму, в результате чего она будет заполнять весь экран, независимо от текущих настроек разрешения их компьютера.
Единственная проблема с этим подходом состоит в том, что он не будет растягивать / изменять размеры элементов управления в вашей форме, чтобы соответствовать новому размеру. Компоновка будет выглядеть так же, как и раньше, но теперь она будет втиснута в верхний левый угол, с обширным пространством пустого пространства внизу и справа от него. Таким образом, хитрость заключается в динамическом изменении размеров элементов управления в вашей форме всякий раз, когда форма сама меняет размер.
К сожалению, VB 6 не имеет встроенной поддержки для этого. У вас нет другого выбора, кроме как написать код для изменения размера всех ваших элементов управления самостоятельно. Лучшее место для этого - ваша форма Resize
событие. Вы можете определить текущий размер вашей формы, проверив ее ScaleWidth
а также ScaleHeight
свойства. Каждый из ваших элементов управления отображает похожий Width
а также Height
свойство, которое можно использовать для установки их размеров относительно размера их формы контейнера. Вам нужно будет разработать некоторую элементарную математическую логику для определения размеров. Быстрый поиск в Google должен найти несколько примеров того, как это сделали другие, но пока нет доступной модели.
Один пример можно найти в почтовых программах, таких как Microsoft Outlook. Вы могли бы иметь TreeView
это занимает 100% высоты формы, но только 50% ее ширины; ListView
это занимает 50% высоты формы и 50% ее ширины; и TextBox
позиционируется под этим, занимая 50% высоты формы и 50% ее ширины. Это позволит получить текучую схему, подобную показанной ниже:
--------------------------------
| | |
| | |
| | ListView |
| | |
| | |
| TreeView |---------------|
| | |
| | |
| | TextBox |
| | |
| | |
--------------------------------
Просто измените свою основную форму, чтобы она была максимизирована (установите свойство window state
в 2 - Maximized
), а затем убедитесь, что все содержащиеся в нем элементы управления изменяют размеры или перемещаются по мере необходимости.
Вы можете использовать метод перемещения, чтобы изменить размер элементов управления. При масштабировании используйте свойства scalewidth,scaleheight,scalemode, twipsperpixel.
Но метод перемещения не будет работать правильно, если изменить размер элементов управления в SSTab, который требует дополнительных усилий для преодоления этого. Вы можете сослаться на это
Другой способ - создать формы с наименьшим разрешением (например, 800X600), чтобы форма отображалась во всех других разрешениях.