Как реализовать подсказки воздушных шаров
Подсказки воздушных шаров похожи на стандартные подсказки, но отображаются в карикатурном стиле "воздушный шар" с стеблем, указывающим на инструмент. Всплывающие подсказки могут быть однострочные или многострочные. Они создаются и обрабатываются точно так же, как и стандартные подсказки.
Позиция по умолчанию стебля и прямоугольника показана на следующем рисунке. Если инструмент слишком близок к верхней части экрана, подсказка отображается ниже и справа от прямоугольника инструмента. Если инструмент слишком близок к правой части экрана, аналогичные принципы применяются, но подсказка отображается слева от прямоугольника инструмента.
Вы можете изменить расположение по умолчанию, задав флаг TTF_CENTERTIP в элементе uFlags структуры tooltip TOOLINFO . В этом случае стебель обычно указывает на центр нижнего края прямоугольника инструмента, а текстовый прямоугольник отображается непосредственно под инструментом. Стебль присоединяется к прямоугольнику текста в центре верхнего края. Если средство слишком близко к нижней части экрана, прямоугольник текста находится по центру над инструментом, а стебли присоединяются к центру нижнего края.
На следующем рисунке показана подсказка, которая сосредоточена на инструменте.
Если вы хотите указать, где точки ствола, задайте флаг TTF_TRACK в элементе uFlags структуры tooltip TOOLINFO . Затем укажите координату , отправив сообщение TTM_TRACKPOSITION с координатами x и y в значении lParam . Если TTF_CENTERTIP также задано, он по-прежнему указывает на позицию, указанную сообщением TTM_TRACKPOSITION .
Это важно знать
Технологии
Необходимые компоненты
- C/C++
- Программирование пользовательского интерфейса Windows
Instructions
Реализация подсказок воздушных шаров
В следующем примере кода показано, как реализовать центрированную подсказку воздушных шаров с помощью стиля элемента управления TTS_BALLOON подсказки.
hwndToolTips = CreateWindow(TOOLTIPS_CLASS, NULL,
WS_POPUP | TTS_NOPREFIX | TTS_BALLOON,
0, 0, 0, 0, NULL, NULL, g_hinst, NULL);
if (hwndTooltip)
{
TOOLINFO ti;
ti.cbSize = sizeof(ti);
ti.uFlags = TTF_TRANSPARENT | TTF_CENTERTIP;
ti.hwnd = hwnd;
ti.uId = 0;
ti.hinst = NULL;
ti.lpszText = LPSTR_TEXTCALLBACK;
GetClientRect(hwnd, &ti.rect);
SendMessage(hwndToolTips, TTM_ADDTOOL, 0, (LPARAM) &ti );
}
См. также