crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Как узнать ширину панели задач (taskbar)?
Rocky
  опции профиля:
сообщение 25.11.2010, 10:42
Сообщение #1


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


Кто-нибудь знает? Нужно просто позиционировать диалоговое окно в самом низу экрана, но так чтобы оно не уходило под taskbar.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 25.11.2010, 11:01
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Тут нужно учитывать такой момент, что taskbar может располагаться не только внизу экрана, на других DE может быть много разных панелей прикрепленных к разным краям экрана.

А так решение в лоб.
Посмотри на:
const QRect QDesktopWidget::availableGeometry ( int screen = -1 ) const
const QRect QDesktopWidget::screenGeometry ( int screen = -1 ) const
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Andrey_*
сообщение 25.11.2010, 17:54
Сообщение #3





Гости








    


Речь идет о винде я так понимаю. То тогда можно так
Находим HWND taskbar

hTaskBar= FindWindow("Shell_TrayWnd",NULL);

дальше для полученого HWND делаем

RECT r
GetWindowRect(hTaskBar,r);

полученный rect будет содержать позицию и размер окна (те таскбара)

The GetWindowRect function retrieves the dimensions of the bounding rectangle of the specified window. The dimensions are given in screen coordinates that are relative to the upper-left corner of the screen.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 25.11.2010, 18:28
Сообщение #4


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Гость_Andrey_*,
обрати внимание на название раздела и подраздела где находится данная тема.
при чем тут HWND ?
речь идет о Qt.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 25.11.2010, 18:49
Сообщение #5


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


Угу, FindWindow, потом коллбэк для EnumWindows =) Давненько...

Я уже сделал как сказал BRE через availableGeometry. Все работает... в обоих ОС, уже проверил)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 3.7.2020, 23:54