Значок Windows Mobile C ++ в трее - PullRequest
       9

Значок Windows Mobile C ++ в трее

2 голосов
/ 20 сентября 2011

Я пытаюсь разместить свое приложение, которое в основном работает в фоновом режиме, в «лотковой» области на Windows Mobile 6.5.

Я делаю это очевидным путем с Shell_NotifyIcon

BOOL ShowTrayIcon(HWND hWnd, HINSTANCE hIns, BOOL bShowIcon)
{
BOOL bRet = FALSE;

g_structNotifyIconData.cbSize = sizeof(NOTIFYICONDATA);
g_structNotifyIconData.hIcon = LoadIcon(hIns, MAKEINTRESOURCE(IDI_GPSCOMPASS));
g_structNotifyIconData.hWnd = hWnd;
g_structNotifyIconData.uCallbackMessage = WM_SYSTRAY_MSG;
g_structNotifyIconData.uFlags = NIF_MESSAGE | NIF_ICON;
g_structNotifyIconData.szTip[0] = 'Bzz';
g_structNotifyIconData.uID = ID_TRAY;

if (bShowIcon)
bRet = Shell_NotifyIcon(NIM_ADD, &g_structNotifyIconData);
else
bRet = Shell_NotifyIcon(NIM_DELETE, &g_structNotifyIconData);


return bRet;
}

Здесь я пытаюсь разместить иконку:

Значок на панели задач в области «сегодня» http://www.fotoszok.pl/upload/666d99dc.jpg

Shell_NotifyIcon делает это, но значок не отображается на экране «Сегодня», я могу видеть, что он находится в трее из любого места , за исключением экрана «Сегодня / Дом».

Теперь я где-то читал, что это потому, что область «Лоток» на экране «Сегодня» зарезервирована для системных уведомлений, и «мы» не можем размещать там какие-либо значки - ну, если это правда, может кто-нибудь подтвердить это?

1 Ответ

1 голос
/ 20 сентября 2011

Действительно, Shell_NotifyIcon не поддерживает добавление значка на экране «Сегодня».Это даже одна из первых вещей, упомянутых в документации по функциям:

Эта функция отправляет в систему сообщение о добавлении, изменении или удалении иконки конкретного приложения из области состояния панели задач.Это не влияет на значки, появляющиеся на главном экране.

Вы можете попробовать использовать SHNotificationAdd .

...