#define WM_ShellNote (WM_APP+100) #define IDC_MYICON 1006 void __fastcall TForm1::Button1Click(TObject *Sender) { memset(&iconData, 0, sizeof(iconData)); iconData.cbSize = sizeof(NOTIFYICONDATA); iconData.hWnd = Form1->Handle; iconData.hIcon = LoadIcon(NULL, MAKEINTRESOURCE(32516)); iconData.uCallbackMessage = WM_ShellNote; iconData.uID = IDC_MYICON; iconData.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; lstrcpyn(iconData.szTip, "Hint", sizeof(iconData.szTip)/sizeof(iconData.szTip[0])); Shell_NotifyIconA(NIM_ADD, &iconData); } LRESULT CALLBACK TForm1::MyNotify(TMessage &Msg) { switch(Msg.LParam) { case WM_RBUTTONUP: Form1->Caption="WM_RBUTTONUP"; break; case WM_LBUTTONUP: Form1->Caption="WM_LBUTTONUP"; break; default: break; } }