Как называется, а главное, как вызвать это окошко через C++

Окно, которое я хочу вызвать:

Здравствуйте. Я столкнулся c задачей, которая требует вывод такого окна со своим текстом. Но, к своему стыду, я даже не знаю, как оно называется, не говоря уже о вызове его. Так что, я спрашиваю у Вас:

Как его вызвать и как оно называется? Спасибо за то, что решили посмотреть вопрос и спасибо за ответы :)


Ответы (1 шт):

Автор решения: Павел Ериков

Если через WinApi, то вот пример создания такого окна (которое называется ToolTip):

// Описание:
//   Создает всплывающую подсказку для элемента в диалоговом окне 
// Параметры:
//   idTool - идентификатор элемента диалогового окна.
//   nDlg - дескриптор диалогового окна
//   pszText - текст в сплывающей подсказке.
// Возвращает:
//   Дескриптор самой всплывающей подсказки
//
HWND CreateToolTip(int toolID, HWND hDlg, LPSTR pszText) {
//Проверка входных аргументов
if (!toolID || !hDlg || !pszText)
{
    return FALSE;
}
//Получаем дескриптор окна у которой будет подсказка
HWND hwndTool = GetDlgItem(hDlg, toolID);

//Создаем дескриптор самой подсказки указывая родителя hDlg
HWND hwndTip = CreateWindowEx(NULL, TOOLTIPS_CLASS, NULL,
    WS_POPUP | TTS_ALWAYSTIP | TTS_BALLOON,
    CW_USEDEFAULT, CW_USEDEFAULT,
    CW_USEDEFAULT, CW_USEDEFAULT,
    hDlg, NULL,
    hInst, NULL);

//Проверка что был получен дескриптор и создан дескриптор подсказки
if (!hwndTool || !hwndTip) {
    return (HWND)NULL;
}

//Заполняем информацию о подсказке
//прикрепляя ее к hDlg
TOOLINFO toolInfo = { 0 };
toolInfo.cbSize = sizeof(toolInfo);
toolInfo.hwnd = hDlg;
toolInfo.uFlags = TTF_IDISHWND | TTF_SUBCLASS;
toolInfo.uId = (UINT_PTR)hwndTool;
toolInfo.lpszText = pszText;
SendMessage(hwndTip, TTM_ADDTOOL, 0, (LPARAM)&toolInfo);

//Возвращаем дескриптор
return hwndTip;
}

Дальше остается только создать например кнопку и привязать к ней эту подсказку.

Например в case WM_CREATE:

case WM_CREATE: {
    hBtn = CreateWindow("button", "Test",
        WS_CHILD | WS_VISIBLE | WS_BORDER,
        50, 100, 120, 30, hWnd, (HMENU)101, hInst, NULL);
    ShowWindow(hBtn, SW_SHOWNORMAL);
    hTool = CreateToolTip(101, hWnd, (char*)"Test ToolTip");
    break;
}

Результат:

Результат

Основа была взята от сюда

Замечание:

В проекте я указал использование многобайтовой кодировки и подключил библиотеку #include <CommCtrl.h>

→ Ссылка