notify icon

alixander

Mitglied
hi Leute, ich mal wieder
Ich hab noch mal ne Frage bezüglich auf das notify icon in der Trayleiste. Das ist mein Code:
Code:
   myIcon.cbSize=sizeof(NOTIFYICONDATA);
Code:
myIcon.hWnd= myhandle;
Code:
myIcon.uID= 0;
Code:
myIcon.uFlags= NIF_TIP | NIF_ICON | NIF_MESSAGE ;
Code:
myIcon.hIcon= LoadIcon(hallo,IDI_APPLICATION);
Code:
wsprintf(myIcon.szTip, "Alexander");
Code:
Shell_NotifyIcon(NIM_ADD, &myIcon);

DIe Trayleiste schiebt sich zwar auf, sodass eine leere Stelle entsteht, in der mein Logo sein sollte (aber ich weiß nicht,warum da keins ist) und dann wenn ich mit der Mausraufgehe verschwindet es wieder. Nun meine Fragen: 1. Wie mache ich das, dass da wirklich ein Logo zu sehen ist, und nicht nur so eine leere Stelle? 2. Was mache ich, damit es nicht, wieder verschwindet, wenn die Maus raufgeht?
mfg - danke schon mal im Voraus
 
Ich bin mir nicht sicher, was bei dir schiefgeht, aber hier hast du zwei Schnipsel, die funktionieren. Sie stammen aus einer MFC-Dialog-Anwendung. Das Icon war als Ressource in der Exe enthalten.
Code:
NOTIFYICONDATA nidIcon;

extern CMyApp theApp;

void CMyDlg::MakeIcon()
{
  nidIcon.cbSize  = sizeof( NOTIFYICONDATA );
  nidIcon.hWnd    = GetSafeHwnd();
  TRACE( "nidIcon.hWnd %u\n", nidIcon.hWnd );
  nidIcon.uID     = 0;
  nidIcon.uFlags  = NIF_TIP | NIF_ICON | NIF_MESSAGE;
  nidIcon.uCallbackMessage = WM_NOTIFY_SIZER;
  nidIcon.hIcon = theApp.LoadIcon( MAKEINTRESOURCE( IDR_MAINFRAME ) );
  wsprintf( nidIcon.szTip, "Das ist ein Tooltipp" );
  Shell_NotifyIcon( NIM_ADD, &nidIcon );
  ::DestroyIcon( nidIcon.hIcon );
}

void CMyDlg::DestroyIcon()
{
  nidIcon.cbSize  = sizeof( NOTIFYICONDATA );
  nidIcon.hWnd    = GetSafeHwnd();
  TRACE( "nidIcon.hWnd %u\n", nidIcon.hWnd );
  nidIcon.uID     = 0;
  Shell_NotifyIcon( NIM_DELETE, &nidIcon );
}
 
Zurück