Размер объектов в Win7

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Star Cat
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 73
Зарегистрирован: 25.07.2003 (Пт) 15:51
Откуда: От туда

Размер объектов в Win7

Сообщение Star Cat » 11.04.2011 (Пн) 12:09

Размер объектов в Win7
Привет! Когда разворачиваешь объект на всю форму (например WebBrowser или UserControl):
Код: Выделить всё
WebBrowser1.Move 0, 0, ScaleWidth, ScaleHeight

то всё в порядке. А если размер убавить:
Код: Выделить всё
WebBrowser1.Move 96, 4, 601, 454

то он становиться ещё меньше. Почему? Исходник прилагается.
Вложения
Size_object.rar
(6.14 Кб) Скачиваний: 60
Star Cat

ProgEXEr
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 7
Зарегистрирован: 26.01.2011 (Ср) 14:14
Откуда: Земной шар, Россия, Камчатский край, г. Петропавловск-Камчатский

Re: Размер объектов в Win7

Сообщение ProgEXEr » 12.04.2011 (Вт) 6:58

Не очень понятно... Что значит это предложение?
Star Cat писал(а):А если размер убавить, то он становиться ещё меньше.

Да, при уменьшении размера объект уменьшается. Всё логично и правильно работает (проверял :)).
Тяжела и неказиста жизнь простого программиста...

Star Cat
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 73
Зарегистрирован: 25.07.2003 (Пт) 15:51
Откуда: От туда

Re: Размер объектов в Win7

Сообщение Star Cat » 12.04.2011 (Вт) 10:59

ProgEXEr писал(а):Не очень понятно... Что значит это предложение?
Star Cat писал(а):А если размер убавить, то он становиться ещё меньше.

Да, при уменьшении размера объект уменьшается. Всё логично и правильно работает (проверял :)).

Объект становиться меньше чем указано в команде «move».
Изображение
Star Cat

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Размер объектов в Win7

Сообщение alibek » 12.04.2011 (Вт) 12:02

Что показывает msgbox Screen.TwipsPerPixelX ?
Lasciate ogni speranza, voi ch'entrate.

Star Cat
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 73
Зарегистрирован: 25.07.2003 (Пт) 15:51
Откуда: От туда

Re: Размер объектов в Win7

Сообщение Star Cat » 13.04.2011 (Ср) 10:20

alibek писал(а):Что показывает msgbox Screen.TwipsPerPixelX ?

В XP Screen.TwipsPerPixelX = 15, а в Win7 Screen.TwipsPerPixelX = 12
Наверно нужно установить параметр формы ScaleMode = 1 – twip и изменить код:
Код: Выделить всё
Private Sub Form_Resize()
    Dim SizePixel As Long
    If WindowState = vbMinimized Then Exit Sub
    SizePixel = Screen.TwipsPerPixelX
    WebBrowser1.Move 96 * SizePixel, 4 * SizePixel, 601 * SizePixel, 454 * SizePixel
End Sub

Спасибо за помощь!
Star Cat

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Размер объектов в Win7

Сообщение Хакер » 13.04.2011 (Ср) 12:24

Star Cat, ты приколист? То что есть ещё TwipsPerPixelY тебе ни о чём не говорит?
Кроме того, код в таком виде ничем не отличается от его (кода) отсутствия. Изменение ScaleMode кое-что меняет, но умножение отменяет весь эффект.

А дело в том, что не надо пытаться обхитрить действительность. В VB все размеры изначально измеряются в твипах, а не в пикселях, как раз для того, чтобы не возникало подобных проблем. Твип — device-independent единица. Кнопка высотой 567 твипов будет иметь высоту 1 см на экране монитора любого размера при любом используемом разрешении, при условии, что сама система правильно настроена.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Star Cat
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 73
Зарегистрирован: 25.07.2003 (Пт) 15:51
Откуда: От туда

Re: Размер объектов в Win7

Сообщение Star Cat » 13.04.2011 (Ср) 12:51

Хакер писал(а):Star Cat, ты приколист?

Я всегда менял значение формы ScaleMode на 3 – pixel. Просто так удобнее размещать объекты. Еще раз спасибо.
Star Cat


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

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

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

    TopList