NotifyIcon verschwindet beim drüberfahren mit der Maus

OP #5362767
Lesenswert?

Hallo zusammen,


ich würde gerne ein NotifIcon (Tray Icon) nutzen, um zu sehen ob mein 
Programm im hintergrund aktiv ist.

Bin kein Win-API spezialist und habe mir die Infos zusammengesucht.

Ich verwende Visual Studio 2015 und es ist eine Win32 Konsolenanwendung 
C++.

Habe schon Google befragt und auch hier im Forum gesucht, jedoch noch 
keine Lösung gefunden.

Ich bekomme das Icon zwar angezeigt, doch sobald ich mit der Maus über 
dieses fahre, verschwindet es.
1
#include "stdafx.h"
2

3
#include <iostream>
4
#include <windows.h>
5
#include <shellapi.h>
6

7
HICON ico;
8
NOTIFYICONDATA nid;
9
HWND hWnd;
10

11
int main()
12
{
13
  hWnd = FindWindow((LPCWSTR)"ConsoleWindowClass", NULL);
14

15
  ico = static_cast<HICON>(LoadImage(NULL,
16
    TEXT("main_1.ico"),
17
    IMAGE_ICON,
18
    0, 0,
19
    LR_DEFAULTCOLOR | LR_SHARED | LR_DEFAULTSIZE | LR_LOADFROMFILE));
20

21
  nid.cbSize = sizeof(nid);
22
  nid.hIcon = ico;
23
  nid.hWnd = hWnd;
24
  //wcscpy_s(Tray.szTip, (wchar_t *)"My Application");
25
  //Tray.uCallbackMessage = WM_LBUTTONDOWN;
26
  nid.uFlags = NIF_ICON;
27
  nid.uID = 100;
28

29
  //set the icon in tasbar tray
30
  Shell_NotifyIcon(NIM_ADD, &nid);
31

32
  system("pause");
33

34
  Shell_NotifyIcon(NIM_DELETE, &nid);
35

36
    return 0;
37
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren