Posted By: Jerry_III (Jerry III) on 'CZprogram'
Title: Program co se min. do traye
Date: Tue Jun 23 18:20:54 1998
O.K. tady to je:
Prvne vytvorime ikonu (ja to delam v OnCreate hlavniho okna):
// Put icon in the tray area
NOTIFYICONDATA nid;
HICON hIcon;
CString str;
nid.cbSize = sizeof(NOTIFYICONDATA);
nid.hWnd = GetSafeHwnd();
nid.uID = ID_TRAY_ICON_ID;
nid.uCallbackMessage = ID_TRAY_ICON;
hIcon = AfxGetApp()->LoadIcon(AFX_IDI_STD_FRAME);
nid.hIcon = hIcon;
GetWindowText(str);
strcpy(nid.szTip, str);
nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
Shell_NotifyIcon(NIM_ADD, &nid); // Taky je dobry kontrolovat vracenou
// hodnotu, kdyby se to nepovedlo
Iconu (resp. jeji handle) samozrejme zrusit nemuzete, to musite udelat az
potom, co ji zrusite v trayi.
Potom ve funkci, ktera odchytava zpravu ID_TRAY_ICON udelate nasledujici:
LONG CMainWnd::OnTrayIcon(UINT nIcon, LONG nMsg)
{
switch( nIcon )
{
case ID_TRAY_ICON_ID:
switch( nMsg )
{
case WM_LBUTTONDBLCLK: // Show window
{
if( IsWindowVisible() )
ShowWindow(SW_HIDE);
else
ShowWindow(SW_SHOW);
SetForegroundWindow();
}
break;
}
}
return 0;
}
Tak to je vse :-)
Jerry III
http://members.xoom.com/JerryIII
E-mail: jerryiii@sprynet.com
ICQ: 8990712