2011-09-20 87 views
2

我試圖將我的應用程序主要在Windows Mobile 6.5的「托盤狀」區域中的背景中運行。Windows Mobile C++托盤圖標

我用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; 
} 

這是我試圖把圖標做的明顯的方式:

Tray icon within the 'today' area http://www.fotoszok.pl/upload/666d99dc.jpg

Shell_NotifyIcon做的事情,但圖標沒有顯示在今日屏幕上,我可以看到它在任何地方,除了今日/主屏幕在托盤中。

現在我已經在某處讀到這是因爲今天屏幕中的紙盤區域保留用於系統通知,並且'我們'不能在其中放置任何圖標 - 如果確實如此,是否有人可以確認?

回答

1

事實上,Shell_NotifyIcon不支持在Today屏幕中添加圖標。這甚至是功能文檔中提到的第一件事情之一:

該函數向系統發送一條消息,以從任務欄狀態區域添加,修改或刪除特定於應用程序的圖標。它不會影響出現在主屏幕上的圖標。

您可以嘗試使用SHNotificationAdd