Ресайзинг контролов при изменении разрешения

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Ресайзинг контролов при изменении разрешения

Сообщение A.A.Z. » 27.02.2004 (Пт) 23:08

Как?
Я оптимизировал свою прогу под 1152x864 (на формах достаточно много контролов, много (42) форм, шрифт достаточно большой), но т.к. большинство использует разрешение 1024x768, а то и 800x600, мне пришлось задуматься над этим. Попытался сделать подобное (через перемножения и деления всяких там Screen.TwipsPerPixelX/Y, Screen.Height/Width и т.п.), но получилась ТАКАЯ ЕРУНДА, что волосы дыбом становятся. Помогите, пожалуйста, кто чем может! :roll:
Нет меня больше

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 28.02.2004 (Сб) 11:22

Есть АПИ дающая текущее разрешение, а там уже простым IF'ом подставлять стандартные значения(подбирай эксперементом). И ещё когда я писал что-то подобное, то у меня была трабла с тем что я деление брал целочисленное :evil: . Когда поставил нормальное всё стало почти ОК (хотя тоже не совсем)...

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 29.02.2004 (Вс) 15:51

Нет, я уже с разрешением-то разобрался, просто сам ресайзинг контролов + ресайзиг шрифтов + .Left & .Top... :(
Нет меня больше

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 01.03.2004 (Пн) 12:08

Все расстояния (.left ; .top) и длины (.height ; .width) множим на множитель. Если у тебя стоит 1152x864
то для 800х600 множим на 0.69(4) или собсно на 800/1152 (не помню можно ли сделать дробь переодичной)

для 1024х768 на 0.( 8 ) или 1024/1152 и.т.д аналогично

А вот со шрифтами боюсь лучше ручками повозиться и выбрать оптимальный для каждого разрешения. :x

P.S. Естественно отдельно множитель для высоты ширины естественно считать не надо он один и тот же :wink:

Оригинально когда он вместо 0.( 8 ) пишет 0.(8) :wink:

Andrey A Kireev
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 06.11.2003 (Чт) 10:05

Сообщение Andrey A Kireev » 01.03.2004 (Пн) 13:02

Тоесть на сколь я понимаю, если будет желание чтобы элементы проги меняли свои позиции в форме согласно изменений размеров самой формы (ну чтобы кнопка как была в углу так там и осталась при увеличении размеров окна).
Нужно получать через АПИ размеры окна и делать пересчет координат всех элементов до единого. Мдя сложновато но можно.
Проще сделать форму с неизменяемыми размерами. :)

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 01.03.2004 (Пн) 13:05

Не помню где скачал этот пример, по-моему может тебе и поможет :?
Вложения
Splitter.zip
Пример работы с Splitter
(3.18 Кб) Скачиваний: 31
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 01.03.2004 (Пн) 16:31

Andrey A Kireev
А что особо сложного? Можно если есть желание написать прогу которая отловит тебе все элементы управления в твоей проге, а потом под них напишет код который будет всю эту лабудень делать. 8) Не так уж и сложно...

Andrey A Kireev
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 06.11.2003 (Чт) 10:05

Сообщение Andrey A Kireev » 01.03.2004 (Пн) 16:35

Можно но в лом.
Особо щас когда еще не сильно кумекаешь в остальном.
И Васик не щелкаешь как семечки :)

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 02.03.2004 (Вт) 22:15

Спасибо всем, сорьте, что заставил думать :)
Есть такая вещь, как Planet of Source Code, там я нашел отличный код, который малость подстроил под себя. И всего-то одна страница! :D
Нет меня больше


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 10

    TopList