Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2015, 19:06   #1
CheatX
Новичок
Джуниор
 
Регистрация: 09.07.2010
Сообщений: 1
По умолчанию Изображение в Hint

День добрый! Стоит задача вывода в hint изображения+текст. Набросал следующий код:
шапка
Код:
THintWindow *HintWindow;
TJPEGImage *jpg = new TJPEGImage;
при создании формы
Код:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
HintWindow = new THintWindow(this);
jpg->LoadFromFile("view1.jpg");
}
обработчик движения курсора по списку из чеклистбокса:
Код:
void __fastcall TForm1::sCheckListBox1MouseMove(TObject *Sender, TShiftState Shift,
          int X, int Y)
{
                TRect Rect;
		TRect Rect1(0,30,420,200);
		TPoint pt = Mouse->CursorPos;
		Rect.Left = pt.x;
		Rect.Top = pt.y + 20;
		Rect.Right = Rect.Left + 420;
		Rect.Bottom = Rect.Top + 200;
	int Index = sCheckListBox1->ItemAtPos(Point(X, Y), true);
	if(Index > -1)
	{
		HintWindow->DoubleBuffered=true;
		HintWindow->Canvas->Font->Style = TFontStyles()<<fsBold;
		HintWindow->Canvas->StretchDraw(Rect1,jpg);
		HintWindow->ActivateHint(Rect, sCheckListBox1->Items->Strings[Index]);
        }
}
При наведении курсора на любую строчку на доли секунды появляется изображение, потом пропадает и в канве остается только текст. Если убрать DoubleBuffered - эффекта 0. Вопрос - что не так?)
P.S: если вместо Rect1 использовать Rect(т.е. всю область канвы) то пропадает даже "мерцание" изображения. Похоже, что при HintWindow->ActivateHint происходит перерисовка.

Последний раз редактировалось CheatX; 17.02.2015 в 19:13.
CheatX вне форума Ответить с цитированием
Старый 27.02.2015, 09:21   #2
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Насколько я помню, что бы вот так просто рисовать на канве хинта надобно создавать его наследника и переопределять метод Paint. Не проще ли создать форму без системных кнопок и рисовать на ней чего надо?
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсказка hint! Юлия_ZZZZ Помощь студентам 3 02.08.2010 13:18
CTreeCtrl и hint iiunbreakableii Общие вопросы C/C++ 0 17.07.2009 14:59
Многострочный HINT Alex Cones Общие вопросы Delphi 8 27.04.2009 18:08
Свой hint Altera Общие вопросы Delphi 3 14.05.2008 15:01
Hint в ComboBox Starscream Общие вопросы Delphi 3 27.02.2008 01:15