crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> SystemTrayIcon координаты.
ernie
  опции профиля:
сообщение 10.9.2010, 12:16
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 130
Регистрация: 13.5.2010
Из: Irkutsk
Пользователь №: 1712

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




Репутация:   1  


Доброго времени суток господа.
Встал такой вопрос,как определить местоположение системной панели(или трея),т.е. справа,слева,вверху или внизу экрана она находится?а так же отрисовывать свой виджет рядом с ней.Заранее спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 10.9.2010, 12:48
Сообщение #2


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

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


Цитата
QRect QSystemTrayIcon::geometry () const
Returns the geometry of the system tray icon in screen coordinates.

This function was introduced in Qt 4.3.

See also visible.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ernie
  опции профиля:
сообщение 11.9.2010, 2:58
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 130
Регистрация: 13.5.2010
Из: Irkutsk
Пользователь №: 1712

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




Репутация:   1  


Алексей1153, я видел этот метод,но он почему-то всегда нули мне возвращает,вне зависимости от нахождения панели
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 11.9.2010, 7:56
Сообщение #4


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

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


у меня нормально возвращает. Но только это прямоугольник иконка, а не лотка. Может, ты иконку не отобразил ?

А как прямоугольник самого лотка достать, только для винды знаю -
Раскрывающийся текст
HWND hShell_TrayWnd=::FindWindow("Shell_TrayWnd",0);//таскбар
if(hShell_TrayWnd && hShell_TrayWnd!=(HWND)-1)
{
    HWND hTrayNotifyWnd=::FindWindowEx(hShell_TrayWnd,0,"TrayNotifyWnd",0);//лоток с часами и иконками вместе
    if(hTrayNotifyWnd && hTrayNotifyWnd!=(HWND)-1)
    {
        HWND hSysPager=::FindWindowEx(hTrayNotifyWnd,0,"SysPager",0);//родитель части лотка с иконками
        if(hSysPager && hSysPager!=(HWND)-1)
        {
            HWND hToolBarWindow32=::FindWindowEx(hSysPager,0,"ToolBarWindow32",0);//сам лоток с иконками

            if(hToolBarWindow32 && hToolBarWindow32!=(HWND)-1)
            {
                RECT r;
                GetWindowRect(hToolBarWindow32,&r);
            }
        }
    }
}


я сейчас попытался как-то так сделать
    QRect rIcon=m_TrayIcon->geometry();
    
    QWidget* syspager=QDesktopWidget().childAt(rIcon.center());
    
    QRect rSyspager=syspager->geometry();


но syspager==0 ...
Возможно, в этом направлении покопать стоит
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ernie
  опции профиля:
сообщение 13.9.2010, 13:10
Сообщение #5


Участник
**

Группа: Участник
Сообщений: 130
Регистрация: 13.5.2010
Из: Irkutsk
Пользователь №: 1712

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




Репутация:   1  


Алексей1153,спасибо за советы,разобрался,не в том месте просто вызывал geometry :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 29.3.2024, 14:12