Форум программистов, компьютерный форум, киберфорум
Pure Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2

Высота некоторых элементов интерфейса Windows

14.04.2012, 19:46. Показов 3879. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые кодеры, подскажите по следующему вопросу:
Можно ли каким-нибудь образом узнать высоту нижней панели задач
(там где пуск, быстрый запуск и т.д) в пикселях ?


Цель собственно понятна: исходя из разрешения экрана создать окошко, которое бы не накрывало эту
панель и чтобы лишнего места не оставалось. Дело в том, что на разных виндах, при разной настройке
масштаба изображения и шрифтов + разные шкуры, получается что высота этой панельки разнится.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.04.2012, 19:46
Ответы с готовыми решениями:

На некоторых ПК высота ComboBox уменьшается до размеров одного элемента
Доброго времени суток. Имеется программка Windows Forms, в ней используется элемент comboBox. На одном из компьютеров на котором будет...

Высота 0 у некоторых картинок в слайдере при первой загрузке страницы
Всем привет! Нужна помощь - почему-то высота некоторых картинок в моем слайдере 0 (тоесть белая пустота вместо картинки) при первом...

Ошибка с изменением интерфейса в играх после удаления некоторых системных программ
Нужна помощь, удалял все и вся лишнее через Unistall tool, видимо удалил что то нужное из системных и скрытых программ, после этого комп...

8
Эксперт по электронике
6859 / 3283 / 339
Регистрация: 28.10.2011
Сообщений: 12,833
Записей в блоге: 7
14.04.2012, 20:15
Задачу можно решить в "лоб".
Панель задач с точки зрения винды это окно, а раз так, то можно узнать его размер.
PureBasic
1
2
3
hWnd = FindWindow_("Shell_TrayWnd", 0)
GetWindowRect_(hWnd, @Size.RECT)
Debug Size\bottom - Size\top
1
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
14.04.2012, 21:53  [ТС]
locm, спасибо всё работает!
0
90 / 37 / 14
Регистрация: 03.11.2010
Сообщений: 429
16.04.2012, 12:06
Задачу можно решить в "лоб".
Панель может находиться и справа и слева и вверху. Есть специальная Апи-функция:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long
Private Const SPI_GETWORKAREA = 48
Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type
 
Dim rc As RECT
SystemParametersInfo SPI_GETWORKAREA, ByVal 0, ByVal rc, ByVal 0
MsgBox rc.Left & vbTab & rc.Right & vbCrLf & rc.Top & vbTab & rc.Bottom
1
Эксперт по электронике
6859 / 3283 / 339
Регистрация: 28.10.2011
Сообщений: 12,833
Записей в блоге: 7
16.04.2012, 12:23
Цитата Сообщение от Димит Посмотреть сообщение
Панель может находиться и справа и слева и вверху.
Все это можно учесть программно.

А код выше будет иметь такой вид:
PureBasic
1
2
3
SystemParametersInfo_(#SPI_GETWORKAREA, 0, rc.RECT, 0)
String.s = Str(rc\Left) + #TAB$ + Str(rc\Right) + #CRLF$ + Str(rc\Top) + #TAB$ + Str(rc\Bottom)
MessageRequester("", String)
1
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
16.04.2012, 12:25
Цитата Сообщение от Димит Посмотреть сообщение
Есть специальная Апи-функция:
Она выдает не размер панели задач, а рабочего стола. Хотя вычислить можно конечно. На PureBasic код выглядит не так страшно, как на VB
PureBasic
1
2
3
4
5
SystemParametersInfo_(#SPI_GETWORKAREA,0,rect.rect,0)
Debug rect\left
Debug rect\top
Debug rect\right
Debug rect\bottom
0
90 / 37 / 14
Регистрация: 03.11.2010
Сообщений: 429
16.04.2012, 12:27
locm,
cори, не посмотрел ветку.
Конечно в PureBasic:
SystemParametersInfo_(#SPI_GETWORKAREA, 0, @Size.RECT, 0)

Исходная задача и есть определить рабочую область -
исходя из разрешения экрана создать окошко, которое бы не накрывало эту
панель и чтобы лишнего места не оставалось
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
18.04.2012, 20:33  [ТС]
Спасибо за расширенное обсуждение, я знал, конечно ,что панель может находиться
в разных местах, но тем не менее, чаще она у всех снизу, ну или редко у кого сверху.
Если сверху, то человек просто перетащит окно чуть ниже. Поэтому меня устраивает
тот код который написал locm.

На PureBasic код выглядит не так страшно, как на VB
Впрочем, хорошо что оба кода есть, так нагляднее.
0
2 / 2 / 2
Регистрация: 25.05.2012
Сообщений: 55
14.05.2014, 12:19
Ниже код показывает положение *бара и размеры первого экрана, а как узнать все тоже самое для второго, третьего экрана???
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Structure AppBar
  NotUsed1.l
  NotUsed2.l
  NotUsed3.l
  Position.l
  LeftX.l
  LeftY.l
  RightX.l
  RightY.l
 EndStructure :Define Info.AppBar
 SHAppBarMessage_(5,@Info)
 
    If Info\Position = 0 : Position$ = "слева" : EndIf
    If Info\Position = 1 : Position$ = "сверху" : EndIf
    If Info\Position = 2 : Position$ = "справа" : EndIf
    If Info\Position = 3 : Position$ = "внизу" : EndIf
     RealHeight=Int(Info\RightY-Info\LeftY)
    If Info\Position = 0 Or Info\Position = 2 : VisibleHeight=(Int(Info\RightY-Info\LeftY-4))*2 :Else : VisibleHeight=(Int(Info\RightY-Info\LeftY-2))*2 : EndIf
    
  Debug VisibleHeight
  Debug RealHeight
  Debug info\Position
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.05.2014, 12:19
Помогаю со студенческими работами здесь

Одинаковая высота колонок при условии что высота изначально не известна
<div class="row equal"> <div class="col-md-8"> <div...

Высота и ширина элементов
Добрый день! Помогите, пожалуйста, начала изучать js+jq и наткнулась на проблему: не выводятся значения ширины и высоты элементов никакими...

Комбинации некоторых клавиш в Windows
Может кто-то знает. Как можно: 1. двигать окно 2. растягивать окно 3. свернуть/развернуть окно 4. обратится к значкам на...

Нет некоторых функций в Windows 7
Люди, объясните чайнику: Я установил 7-ку на комп и ноутБУК. Установка прошла идеально, и абсолютно одинаково, с одного диска. Но на ноут...

Изменение интерфейса windows
Здравствуйте, подскажите пожалуйста как можно путем редактирования библиотек виндоус изменить интерфейс ну например на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru