Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Разрешение экрана Добавлено: 26.08.04 19:22  

Автор вопроса:  Paul
Подскажите как правильно менять размеры формы под различным разрешением экрана. Под 800x600 не влазит
в экран.
Может у кого есть кусок кода?
Так понимаю, что нужно юзать GetSystemMetrics и менять
ширину и расположение элементов формы программно...эх

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 Lister



ICQ: 298621256 

Вопросов: 57
Ответов: 304
 Профиль | | #1 Добавлено: 26.08.04 22:17
Да, нужно будет позиционировать все элементы заново...

Расположи контролы в контейнере и сделай прокручивание - так будет проще, либо сразу делай форму размером 800х600

А вообще, если контролы не умещаются, лучше располагать их на вкладках

Ответить

Номер ответа: 2
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #2 Добавлено: 26.08.04 22:26
То есть ты хочешь, чтоб форма(и ВСЕ ее элементы) все время была, например, в четверть экрана? Тогда нужно найти коэффициент, скажем, ширины экрана(kw), под которую расчитана форма(например 1024) к имеющейся ширине(например 800), найти такжа коэффициент высоты(kh)а потом:

Dim i as Integer
For i=0 to Controls.Count - 1
    Controls(i).Width=Controls(i).Width / kw
    Controls(i).Height=Controls(i).Height / kh
Next

А вот разрешение придется узнавать...

P.S. Если не катит, будем разбераться... :~)

Ответить

Номер ответа: 3
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #3 Добавлено: 26.08.04 22:26
ЭХ, забыл!!!
добавь еще в цикл:
Controls(i).Left=Controls(i).Left/ kw
Controls(i).Top=Controls(i).Top / kh

Ответить

Номер ответа: 4
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #4
Добавлено: 26.08.04 23:12
GetSystemMetrics, это АПИ, а можно юзать Screen.Width & Screen.Height

Ответить

Номер ответа: 5
Автор ответа:
 dNW



Вопросов: 30
Ответов: 683
 Профиль | | #5 Добавлено: 27.08.04 08:33
А если точнее - то получить разрешение можно так

ret=Screen.Width/Screen.TwipsPerPixelX & "x" & Screen.Height/Screen.TwipsPerPixeY

И там уже меняй размеры формы

Ответить

Номер ответа: 6
Автор ответа:
 alexis_b



ICQ: 232969505 

Вопросов: 10
Ответов: 74
 Профиль | | #6 Добавлено: 27.08.04 09:11
есть такой компонент ActiveSizer от dataDynamics если его кинуть на форму а потом расположить все элементы то после этого не нужно делать перерсчет размеров и положения контролов при изменении формы

Ответить

Номер ответа: 7
Автор ответа:
 Paul



Вопросов: 19
Ответов: 11
 Профиль | | #7 Добавлено: 27.08.04 10:27
Спасибо всем.
Именно и нужно, чтобы окно формы занимало всегда
(при любом разрешении)
3 четверти экрана по ширине
(это заморочка заказчика).
Контролы и так располагаются по вкладкам, но на каждой вкладке их много и некоторые должны быть достаточно большими по ширине (гриды и др.), а в программе окно одно
такой интефейс захотелось начальству).

Ещё раз, спасибо.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам