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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.