Доброго времени суток господа.
Встал такой вопрос,как определить местоположение системной панели(или трея),т.е. справа,слева,вверху или внизу экрана она находится?а так же отрисовывать свой виджет рядом с ней.Заранее спасибо.
Алексей1153, я видел этот метод,но он почему-то всегда нули мне возвращает,вне зависимости от нахождения панели
у меня нормально возвращает. Но только это прямоугольник иконка, а не лотка. Может, ты иконку не отобразил ?
А как прямоугольник самого лотка достать, только для винды знаю -
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();
Алексей1153,спасибо за советы,разобрался,не в том месте просто вызывал geometry
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)