Tray Icon Balloon
-
Hallo,
ich habe folgenden Code:void CreateTrayIcon(HWND hMainWindow) { char szTip[64] = "tip"; //Exemplarisch nidTrayIcon.cbSize = sizeof(nidTrayIcon); nidTrayIcon.hIcon = LoadIcon(GetModuleHandle(0), MAKEINTRESOURCE(IDI_ICON1)); //Exemplarisch nidTrayIcon.hWnd = hMainWindow; //Exemplarisch, HWND des Fensters an dessen MessageLoop die Nachricht geschickt werden soll nidTrayIcon.uCallbackMessage = (WM_USER + 1); //Exemplarisch nidTrayIcon.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP | NIF_INFO; //Exemplarisch nidTrayIcon.uID = 0x0200; //Exemplarisch strcpy(nidTrayIcon.szTip, szTip); nidTrayIcon.szTip[strlen(szTip)] = '\0'; // For a Ballon Tip strcpy_s(nidTrayIcon.szInfoTitle, "Title of the Ballon"); // Title strcpy_s(nidTrayIcon.szInfo, "Text..." ); // Copy Tip nidTrayIcon.uTimeout = 3000; // 3 Seconds nidTrayIcon.dwInfoFlags = NIIF_INFO; nidTrayIcon.hBalloonIcon = LoadIcon(GetModuleHandle(0), MAKEINTRESOURCE(IDI_ICON1)); //Exemplarisch Shell_NotifyIcon(NIM_ADD, &nidTrayIcon); }Der Code soll ein Icon setzen und dann gleich den Balloon anzeigen. Das Icon erscheint zwar aber ohne balloon. Hoffe jemand kann mir helfen

-
Die Ballon's sind meines wissens nach erst ab Vista möglich,.....
mfg
-
stimmt nicht. Ich hab in XP schon mehrmals so etwas gesehen.
-
Versuchs mal so
void CreateTrayIcon(HWND hMainWindow) { char szTip[64] = "tip"; //Exemplarisch nidTrayIcon.cbSize = sizeof(nidTrayIcon); nidTrayIcon.hIcon = LoadIcon(GetModuleHandle(0), MAKEINTRESOURCE(IDI_ICON1)); //Exemplarisch nidTrayIcon.hWnd = hMainWindow; //Exemplarisch, HWND des Fensters an dessen MessageLoop die Nachricht geschickt werden soll nidTrayIcon.uCallbackMessage = (WM_USER + 1); //Exemplarisch nidTrayIcon.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP | NIF_INFO; //Exemplarisch nidTrayIcon.uID = 0x0200; //Exemplarisch Shell_NotifyIcon(NIM_ADD, &nidTrayIcon); strcpy(nidTrayIcon.szTip, szTip); nidTrayIcon.szTip[strlen(szTip)] = '\0'; // For a Ballon Tip strcpy_s(nidTrayIcon.szInfoTitle, "Title of the Ballon"); // Title strcpy_s(nidTrayIcon.szInfo, "Text..." ); // Copy Tip nidTrayIcon.uTimeout = 3000; // 3 Seconds nidTrayIcon.dwInfoFlags = NIIF_INFO; nidTrayIcon.hBalloonIcon = LoadIcon(GetModuleHandle(0), MAKEINTRESOURCE(IDI_ICON1)); //NUR LONGHORN (VISTA)!!! Shell_NotifyIcon(NIM_MODIFY, &nidTrayIcon); }
-
sehe es leider immernoch nicht
-
Alos laut MSDN sieht die Struktur so aus:
typedef struct _NOTIFYICONDATA { DWORD cbSize; HWND hWnd; UINT uID; UINT uFlags; UINT uCallbackMessage; HICON hIcon; TCHAR szTip[64]; DWORD dwState; DWORD dwStateMask; TCHAR szInfo[256]; union { UINT uTimeout; UINT uVersion; }; TCHAR szInfoTitle[64]; DWORD dwInfoFlags; GUID guidItem; } NOTIFYICONDATA, *PNOTIFYICONDATA;Wo um Himmels willen zauberst du "hBalloonIcon" her?
-
geht auch nicht ohne dem. Habs gelöscht abeer geht nicht
-
void CreateTrayIcon(HWND hMainWindow)
{
char szTip[64] = "Test"; //Exemplarisch
nidTrayIcon.cbSize = sizeof(nidTrayIcon);
nidTrayIcon.hIcon = LoadIcon(GetModuleHandle(0), MAKEINTRESOURCE(IDI_ICON1)); //Exemplarisch
nidTrayIcon.hWnd = hMainWindow; //Exemplarisch, HWND des Fensters an dessen MessageLoop die Nachricht geschickt werden soll
nidTrayIcon.uCallbackMessage = (WM_USER + 1); //Exemplarisch
nidTrayIcon.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; //Exemplarisch
nidTrayIcon.uID = 0x0200; //Exemplarisch
Shell_NotifyIcon(NIM_ADD, &nidTrayIcon);strcpy(nidTrayIcon.szTip, szTip);
nidTrayIcon.szTip[strlen(szTip)] = '\0';// For a Ballon Tip
strcpy_s(nidTrayIcon.szInfoTitle, "Title of the Ballon"); // Title
strcpy_s(nidTrayIcon.szInfo, "Text..." ); // Copy Tip
nidTrayIcon.uTimeout = 3000; // 3 Seconds
nidTrayIcon.dwInfoFlags = NIIF_INFO;Shell_NotifyIcon(NIM_MODIFY, &nidTrayIcon);
}es will einfach nicht funktionieren. Alles geht auser der Balloon wird nicht angezeigt. Wäre super, wenn noch jemand ne Idee hat.
-
sorry tags vergessen
void CreateTrayIcon(HWND hMainWindow) { char szTip[64] = "something"; //Exemplarisch nidTrayIcon.cbSize = sizeof(nidTrayIcon); nidTrayIcon.hIcon = LoadIcon(GetModuleHandle(0), MAKEINTRESOURCE(IDI_ICON1)); //Exemplarisch nidTrayIcon.hWnd = hMainWindow; //Exemplarisch, HWND des Fensters an dessen MessageLoop die Nachricht geschickt werden soll nidTrayIcon.uCallbackMessage = (WM_USER + 1); //Exemplarisch nidTrayIcon.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; //Exemplarisch nidTrayIcon.uID = 0x0200; //Exemplarisch Shell_NotifyIcon(NIM_ADD, &nidTrayIcon); strcpy(nidTrayIcon.szTip, szTip); nidTrayIcon.szTip[strlen(szTip)] = '\0'; // For a Ballon Tip strcpy_s(nidTrayIcon.szInfoTitle, "Title of the Ballon"); // Title strcpy_s(nidTrayIcon.szInfo, "Text..." ); // Copy Tip nidTrayIcon.uTimeout = 3000; // 3 Seconds nidTrayIcon.dwInfoFlags = NIIF_INFO; Shell_NotifyIcon(NIM_MODIFY, &nidTrayIcon); }
-
#define _WIN32_IE 0x0500??
Ab Common Contrl. v.4.8 !
shellapi.h ?!ansonsten noch mal hier rein schauen,..
Mit Vista war ich mir aber sicher, leider habe ich jetzt keine referenz meiner behauptung gefunden,..
greetz
-
zeusosc schrieb:
Die Ballon's sind meines wissens nach erst ab Vista möglich,.....
Nein, schon seit Win 2000!
Bei meinem XP-System kommen die Ballon-Tips in der Taskbar vor, z.B. "neue Hardware gefunden".Selbst in der Doku (siehe Dein Link vorhin) stehen sogar explizit Hinweise über Verfügbarkeit ab Win 2000 drin, z.B. bei Member dwInfoFlags.
Martin