Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Узнать координату нижнего края формы?


Автор: Guest45 26.3.2019, 14:26
Как узнать координату нижнего края формы?

Если кто думает, что она равна Form.Height - Не-а! - координата нижнего края будет равна этой высоте минус высота заголовка, минус высота строки меню.
А они будут разные на разных машинах, при разных настройках экрана.
Я с этим реально столкнулся :( объект около нижнего края, на другом компе "уехал" за край формы в недоступную область. Потому что там заголовок и меню оказались заметно толще(((((((

Как вообще с этим работать? Как получить в программе верную координату нижней границы?

Автор: Oldshelf 26.3.2019, 19:09
Код

GetSystemMetrics(SM_CYCAPTION) + GetSystemMetrics(SM_CYMENU) + GetSystemMetrics(SM_CYBORDER) + GetSystemMetrics(SM_CYFIXEDFRAME)


Добавлено через 4 минуты и 12 секунд
http://rusproject.narod.ru/winapi/g/getsystemmetrics.html

Автор: Guest45 27.3.2019, 11:54
Оооо, круто!!!.. Огромное спасибо!..
Буду пробовать.

ЗЫ
Я так и ожидал, что АПИ мне поможет, но как именно это сделать - не знал. Спасибо за подсказку.


Автор: Naghual 27.3.2019, 13:25
Есть Form.Height а есть  Form.ScaleHeight.
Учите матчасть.

Автор: Guest45 27.3.2019, 14:22
smile

Ну надо же, а?! Scale - это вообще-то установка масштаба. Ну кто бы мог подумать, что начало координат - смещается, а шкала масштабирования - нет?!..

Спасибо и за этот совет!
(и как же я сам не допёр)))))))


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)