
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TrayIcon1->Visible=true;
TrayIcon1->BalloonHint="Tekst dymka";
TrayIcon1->BalloonTitle="Tytuł dymka";
TrayIcon1->BalloonFlags=bfInfo;
TrayIcon1->ShowBalloonHint();
}
//---------------------------------------------------------------------------
void ShowBalloonTip(wchar_t *szMsg,
wchar_t *szTitle, UINT uTimeout, DWORD dwInfoFlags, HANDLE hWnd)
{
TNotifyIconData Ficon;
Ficon.cbSize = DWORD(&(PNotifyIconData()->hBalloonIcon));
Ficon.hWnd = hWnd;
Ficon.uID = 0;
Ficon.uFlags = NIF_ICON | NIF_TIP | NIF_INFO;
Ficon.uCallbackMessage = WM_USER + 1;
wcscpy(Ficon.szTip, L"Tool Tip");
Ficon.hIcon = Application->Icon->Handle;
wcscpy(Ficon.szInfoTitle, szTitle);
wcscpy(Ficon.szInfo, szMsg);
Ficon.dwInfoFlags = NIIF_INFO;
Ficon.uTimeout = 10000;
Shell_NotifyIconW(NIM_ADD, &Ficon);
//Shell_NotifyIconW(NIM_DELETE, &Ficon);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
ShowBalloonTip(L"Treść komunikatu", L"Tytuł", 10000, NIIF_INFO, Handle);
}
//---------------------------------------------------------------------------//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
POINT pt;
GetCursorPos(&pt);
BalloonHint1->Title = "Tytuł";
BalloonHint1->Description = "Komunikat";
BalloonHint1->ImageIndex = 0;
BalloonHint1->ShowHint(pt);
}
//---------------------------------------------------------------------------

Cyfrowy Baron napisał(a):To nie zadziała, przynajmniej w C++Builder 2010, u mnie z jakiegoś powodu nie działa



Cyfrowy Baron napisał(a):Nie bardzo rozumiem jak miałbym to podłączyć pod komponent TrayIcon1.



Ciekawe rzeczy mówicie, bo to co napisałem działa w Builderze 2007 i 2009

class TForm1 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
TPopupMenu *PopupMenu1;
TMenuItem *Zamknij1;
void __fastcall Button1Click(TObject *Sender);
void __fastcall Zamknij1Click(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
private: // User declarations
TNotifyIconData Ficon;
void TForm1::ShowBalloonTip(wchar_t *szMsg,
wchar_t *szTitle, UINT uTimeout, DWORD dwInfoFlags);
void __fastcall WMTrayNotify(TMessage &Msg);
public: // User declarations
__fastcall TForm1(TComponent* Owner);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_USER + 1001, TMessage, WMTrayNotify)
END_MESSAGE_MAP(TForm)
};
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Ficon.cbSize = DWORD(&(PNotifyIconData()->hBalloonIcon));
Ficon.hWnd = Handle;
Ficon.uID = 0;
Ficon.uFlags = NIF_ICON | NIF_TIP | NIF_INFO;
Ficon.uCallbackMessage = WM_USER + 1001;
Ficon.hIcon = Application->Icon->Handle;
Shell_NotifyIconW(NIM_ADD, &Ficon);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::WMTrayNotify(TMessage &Msg)
{
switch(Msg.LParam)
{
case WM_RBUTTONUP:
{
POINT WinPoint;
GetCursorPos(&WinPoint);
SetForegroundWindow(Handle);
PopupMenu1->Popup(WinPoint.x,WinPoint.y);
PostMessage(Handle, WM_NULL, 0,0);
break;
}
case WM_LBUTTONDBLCLK:
{
Shell_NotifyIconW(NIM_DELETE, &Ficon);
ShowWindow(Application->Handle, SW_SHOW);
Visible = true;
break;
}
}
}
//---------------------------------------------------------------------------
void TForm1::ShowBalloonTip(wchar_t *szMsg,
wchar_t *szTitle, UINT uTimeout, DWORD dwInfoFlags)
{
wcscpy(Ficon.szInfoTitle, szTitle);
wcscpy(Ficon.szInfo, szMsg);
Ficon.dwInfoFlags = dwInfoFlags;
Ficon.uTimeout = uTimeout;
Shell_NotifyIconW(NIM_MODIFY, &Ficon);
//Shell_NotifyIconW(NIM_DELETE, &Ficon);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShowBalloonTip(L"Komunikat", L"Tutuł", 10000, NIIF_WARNING);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Zamknij1Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
Shell_NotifyIconW(NIM_DELETE, &Ficon);
}
//---------------------------------------------------------------------------







Powrót do Ogólne problemy z programowaniem
Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 1 gość