Порядок, в котором мой значок добавляется в системный трей?

Я кодирую приложение MFC / C ++, которое размещает несколько значков на панели задач. (Количество значков контролируется пользователем и может достигать до 10 или около того, если пользователь желает это сделать — каждая для определенной функции приложения.)

У меня вопрос, могу ли я контролировать порядок размещения этих значков в трее?

Что происходит сейчас, это когда я звоню

Shell_NotifyIcon(NIM_ADD, &nid);

в определенном порядке порядок, в котором значки отображаются в реальном лотке, отличается.

0

Решение

Панель задач — это просто элемент управления ToolBar32. Вы можете справиться с этим примерно так:

HWND hWnd = ::FindWindow(_T("Shell_TrayWnd"), NULL);
if(hWnd)
{
hWnd = ::FindWindowEx(hWnd,NULL,_T("TrayNotifyWnd"), NULL);
if(hWnd)
{
hWnd = ::FindWindowEx(hWnd,NULL,_T("SysPager"), NULL);
if(hWnd)
{
hWnd = ::FindWindowEx(hWnd, NULL,_T("ToolbarWindow32"), NULL);
}
}
}

Тогда вы должны быть в состоянии назвать это:

::SendMessage(hWnd, TB_MOVEBUTTON, nFrom, nTo);
0

Другие решения


По вопросам рекламы [email protected]