向CMenu项添加工具提示

时间:2015-07-22 09:16:12

标签: c++ visual-c++ mfc tooltip cmenu

前段时间,我曾尝试在CMenu项目上添加工具提示以进行测试。现在我需要它,我再次遇到同样的问题。

这个问题和答案: MFC : How to add tooltip in Cmenu items? 我根本没有帮助我,因为这个"换行魔术"根本就没有用。

此外,似乎我不是唯一一个遇到问题的人: MFC CMenu tooltip not being displayed

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();
}

结果如下:

enter image description here

但是,增加文本字母会产生更大的弹出菜单,而不是菜单工具提示。

我已经看到了这个答案中的其他链接,并检查了它们和项目。但这些不是我想要的。

有人知道我做错了什么,或者是否有其他可能有用的解决方案/来源?

编辑:正如我之前在comment中所提到的,这里有一个sample solution,它具有重现问题的最低要求。 (见CMenuListCtrl.cpp(100)
使用VS2010测试&amp; VS2015(结果相同)。

1 个答案:

答案 0 :(得分:1)

这个诀窍将解决你的问题,&#34;换行魔术&#34;肯定会工作的。

确保您使用的是ComCtl32.dll的第6版。

在stdafx.h文件中添加以下块并重建项目。

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

enter image description here