** Umka |
Отправлено: 01.02.2004, 16:01 |
|
Не зарегистрирован
|
Как сделать такую вещь на CBuilder? |
|
** Umka |
Отправлено: 01.02.2004, 16:07 |
|
Не зарегистрирован
|
Извините, картинка здесь |
|
Admin |
Отправлено: 02.02.2004, 09:17 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
И там тоже нет.
А подсказка — как и везде, это свойство Hint
Отредактировано Admin — 02/02/2004, 10:21
|
|
Gedeon |
Отправлено: 02.02.2004, 10:07 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
все зависит от того каким образом картинка запихнута в трэй, если с помощью какого-нить компонента, то админ правильно написал — это свойство хинт, если через winapi то тоже есть решение, посмотри пример в $(BCB)\Examples\Controls\trayicon, либо MSDN
|
|
Gedeon |
Отправлено: 02.02.2004, 10:15 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
конкретно имеется в виду, что если икона запихнута с помощью
CODE |
WINSHELLAPI BOOL WINAPI Shell_NotifyIcon(
DWORD dwMessage,
PNOTIFYICONDATA pnid
);
|
то для показа подсказки нужно правильно заполнить структуру pnid
|
|
Umka |
Отправлено: 02.02.2004, 10:46 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 32
|
Неее, вы меня не поняли. Подсказка ни хинт а в форме овала. Как появляется рядом со значком в трее, когда выходиш в интернет по Dial-Up или когда на диске мало места.
Какртинка — смотрите прикреплённый файл.
Присоединить изображение
|
|
Admin |
Отправлено: 02.02.2004, 14:58 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Понятно.
И все же это hint.
А насчет округлостей — можете рисовать какие угодно hint-ы
Например, скачайте компонент FormHints
или можно использовать компоненты FormHelp
(смотрите пример):
http://rxlib.ru/prim/trayhint.rar (12 Kb)
---
Можно и переопределить установки для окна hint-a
CODE |
public: // User declarations
void __fastcall MyShowHint(AnsiString &HintStr, bool &CanShow, THintInfo &HintInfo);
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Application->OnShowHint = MyShowHint;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MyShowHint(AnsiString &HintStr, bool &CanShow, THintInfo &HintInfo)
{
int i;
HRGN rgn;
for(i = 0; i < Application->ComponentCount — 1; i++){
if(dynamic_cast<THintWindow*>(Application->Components[i])){
THintWindow *Hw = ((THintWindow*)Application->Components[i]);
Hw->Canvas->Font->Name = "Arial";
Hw->Canvas->Font->Size = 26;
Hw->Canvas->Font->Style = Hw->Font->Style<<fsBold;
HintInfo.HintColor = clWhite;
int tw = Hw->Canvas->TextWidth(HintStr)+10;
int th = Hw->Canvas->TextHeight(HintStr)+10;
rgn = CreateRoundRectRgn(0, 0, tw, th, 45, 45);
SetWindowRgn(Hw->Handle, rgn, true);
}
}
}
//-------------------------------------------------------------
|
Что касается hint-a в трее это по видимому надо
переопределять Windows-hint
Отредактировано Admin — 02/02/2004, 16:17
|
|
Umka |
Отправлено: 03.02.2004, 16:30 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 32
|
Admin
Спасибо!
Отредактировано Umka — 04/02/2004, 11:14
Присоединить изображение
|
|