Добавление всплывающей подсказки к элементу (ам) CMenu

Некоторое время назад я пытался добавить всплывающую подсказку для тестирования элемента CMenu. Теперь мне это нужно, и я снова сталкиваюсь с той же проблемой.

Этот вопрос и ответ (ы):
MFC: Как добавить всплывающую подсказку в элементах Cmenu?

мне совсем не помогает, так как эта «магия новой строки» просто не работает.

Кроме того, похоже, что я не единственный, у кого проблемы с этим:
MFC CMenu подсказка не отображается

void CTextListCtrl::CreateMenu(void)
{
m_Menu.CreateMenu();
CMenu submenu;
submenu.CreatePopupMenu();
submenu.AppendMenuW(MF_STRING, IDC_RESEND_POPUP, L"&Resend\nShow me the tooltip");
//Other menu items...
m_Menu.AppendMenuW(MF_POPUP, reinterpret_cast<UINT_PTR>(submenu.m_hMenu), L"");
submenu.Detach();
}

Результат таков:

введите описание изображения здесь

Однако увеличение букв текста приводит к появлению большего всплывающего меню, а не всплывающей подсказки меню.

Я видел другие ссылки в этом ответе, и проверил их и проекты. Но это не то, что я хочу.

Кто-то знает, что я сделал неправильно, или есть другое решение / источник, который может быть полезным?


Изменить: как я уже упоминал ранее в комментарий, вот образец раствора с минимальными требованиями для воспроизведения проблемы. (Увидеть CMenuListCtrl.cpp(100))
Протестировано с VS2010 & VS2015 (тот же результат).

11

Решение

Вот трюк, который решит вашу проблему, «волшебство новой строки» сработает наверняка.

Убедитесь, что вы используете версию 6 ComCtl32.dll.

Добавьте блок ниже в файл stdafx.h и пересоберите свой проект.

#pragma comment(linker, "\"/manifestdependency:type='win32'\
name='Microsoft.Windows.Common-Controls' version='6.0.0.0' \
processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")

введите описание изображения здесь

1

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector