Ширина границы окна, как узнать сколько пикселей?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Kevlar
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 09.02.2005 (Ср) 9:02

Ширина границы окна, как узнать сколько пикселей?

Сообщение Kevlar » 01.04.2005 (Пт) 16:05

Подскажите свойство формы или к-либо другой способ. В мануалах этого не встретил. Полагаю нужно использовать библиотеки или ocx - файлы.

Arcanoid
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 01.01.2005 (Сб) 15:44

Сообщение Arcanoid » 01.04.2005 (Пт) 16:16

Видать так:
bx1 = GetSystemMetrics(SM_CXBORDER)

или так:
bx2 = GetSystemMetrics(SM_CXEDGE)'мне кажется - это оно самое!

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 01.04.2005 (Пт) 20:48

Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

Kevlar
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 09.02.2005 (Ср) 9:02

Сообщение Kevlar » 04.04.2005 (Пн) 8:41

Arcanoid писал(а):Видать так:
bx1 = GetSystemMetrics(SM_CXBORDER)

или так:
bx2 = GetSystemMetrics(SM_CXEDGE)'мне кажется - это оно самое!


Sub or function not defined при использовании GetSystemMetrics.
Если возможно, опиши подробнее как использовать эту функцию.

To Tarik. Спасибо. Оно.

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 04.04.2005 (Пн) 9:35

Объявляешь на уровне модуля
Код: Выделить всё

Public Declare Function GetSystemMetrics Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
Public Const SM_CXBORDER = 5

И используешь

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

Kevlar
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 09.02.2005 (Ср) 9:02

Сообщение Kevlar » 04.04.2005 (Пн) 13:19

xolod писал(а):Объявляешь на уровне модуля
Код: Выделить всё
Public Declare Function GetSystemMetrics Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
Public Const SM_CXBORDER = 5

И используешь

В help'e MSDN я нашел эту функцию и список всех констант и их описание. Но не нашел сопоставления этих констант целым числам. Например, SM_CXFULLSCREEN и SM_CYFULLSCREEN равны, соответственно, 0 и 1 - возвращают разрешение экрана по горизонтали и вертикали. Без объявления этих саммых констант програма выдает variable not defined. Для чего тогда эти константы?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.04.2005 (Пн) 14:05

Для того, чтобы функция знала, что ты от неё хочешь, для чего же ещё...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Kevlar
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 09.02.2005 (Ср) 9:02

Сообщение Kevlar » 04.04.2005 (Пн) 14:51

GSerg писал(а):Для того, чтобы функция знала, что ты от неё хочешь, для чего же ещё...

Вспомним msgbox, для которого равносильны msgbox("Сообщение",vbOKOnly,"Заголовок")
и msgbox("Сообщение",0,"Заголовок"), т.е. vbOKOnly = 0 (условно). Заметьте мы не пишем Public Const vbOkOnly=0 в глобале.
Почему!? нельзя написать
bx2 = GetSystemMetrics(SM_CXEDGE), иначе VB выдает, что переменная-константа не опрделена. И где можно посмотреть/найти список соответствия этих констант их аналогичным целочисленным аргументам?
Надеюсь, изъясняюсь понятно, GSerg? ;)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.04.2005 (Пн) 15:07

Понятно ты изъясняешься, но я иногда люблю поприкалываться...

Public Const vbOkOnly=0 хоть пишем и не мы, но, тем не менее, это написано :)

Тебе сюда :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Arcanoid
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 01.01.2005 (Сб) 15:44

Сообщение Arcanoid » 04.04.2005 (Пн) 15:47

Код: Выделить всё
public const SM_CXBORDER as long = 5
public const SM_CYBORDER as long = 6

public const SM_CXEDGE as long = 45
public const SM_CYEDGE as long = 46

Kevlar
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 09.02.2005 (Ср) 9:02

Сообщение Kevlar » 05.04.2005 (Вт) 7:50

Всем по звезде. Нужные ссылки: нашел больше, чем искал.
Спасибо.


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

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

Сейчас этот форум просматривают: SemrushBot и гости: 69

    TopList  
cron