crossplatform.ru

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


  Ответ в SystemTrayIcon координаты.
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
ernie Дата 13.9.2010, 13:10
  Алексей1153,спасибо за советы,разобрался,не в том месте просто вызывал geometry :)
Алексей1153 Дата 11.9.2010, 7:56
  у меня нормально возвращает. Но только это прямоугольник иконка, а не лотка. Может, ты иконку не отобразил ?

А как прямоугольник самого лотка достать, только для винды знаю -
Раскрывающийся текст
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 Дата 11.9.2010, 2:58
  Алексей1153, я видел этот метод,но он почему-то всегда нули мне возвращает,вне зависимости от нахождения панели
Алексей1153 Дата 10.9.2010, 12:48
 
Цитата
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 Дата 10.9.2010, 12:16
  Доброго времени суток господа.
Встал такой вопрос,как определить местоположение системной панели(или трея),т.е. справа,слева,вверху или внизу экрана она находится?а так же отрисовывать свой виджет рядом с ней.Заранее спасибо.
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 5.7.2025, 0:10