Hej, så er jeg her igen.
Jeg har denne gang problemer med at få oprettet et balloontip, der popper op fra tray'en. Jeg tager udgangspunkt i at den popper op fra et allerede eksisterende ikon, der på forhånd er lavet af programmet. Det hele er bygget op i klasser, men dette burde ikke være problemet. Jeg har prøvet at gøre brug af NOTIFYICONDATA-strukturen, samt Shell_NotifyIcon()-funktionen til at vise det.
this->BalloonTipData.cbSize = sizeof(NOTIFYICONDATA);
this->BalloonTipData.hWnd = hWnd;
this->BalloonTipData.uID = UniqueID;
this->BalloonTipData.uFlags = Flags;
this->BalloonTipData.uTimeout = 15000;
this->BalloonTipData.uCallbackMessage = TRAYTIP_CALLBACK;
this->BalloonTipData.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(Icon));
strcpy(this->BalloonTipData.szInfoTitle, "InfoTitle");
strcpy(this->BalloonTipData.szInfo, "Info");
strcpy(this->BalloonTipData.szTip, "Tip");
InfoTitle, Info og Tip er hardcoded pt., indtil jeg får det til at virke. Jeg har så brugt Shell_NotifyIcon() således
Shell_NotifyIcon(NIM_MODIFY, &this->BalloonTipData);
Det skal siges at flagsne der bliver sat er
NIF_ICON | NIF_MESSAGE | NIF_TIP | NIF_INFO
og at der er lavet en "handle" til at styre callback'et. Jeg har prøvet at sætte nogle "debug"-beskeder ind i programmet for at se om det bliver kørt, og det gør det hele. Jeg prøvede også at tjekke Shell_NotifyIcon()'s returværdi, og den var false, altså der er åbenbart en fejl.
int err = Shell_NotifyIcon(NIM_MODIFY, &this->BalloonTipData);
if(err != 0)
MessageBox(NULL, "Success", "Status", MB_ICONINFORMATION);
else
MessageBox(NULL, "Failure", "Status", MB_ICONINFORMATION);
Jeg kan personligt ingen fejl finde, og jeg er helt lost. Er der noget jeg har misforstået, eller gør forkert? Håber I kan hjælpe mig!