前一段时间,我试图在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();
}

结果是这样的:

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

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

有人知道我做错了什么吗,或者是否有其他解决方案/资源可能对您有所帮助?

编辑:正如我之前在comment中提到的,这是一个sample solution,具有重现此问题的最低要求。 (请参阅CMenuListCtrl.cpp(100))
经过VS2010和VS2015测试(结果相同)。

最佳答案

这里的技巧可以解决您的问题,“换行符”肯定会起作用。

确保您使用的是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='*'\"")

c&#43;&#43; - 向菜单项添加工具提示)-LMLPHP

09-09 19:14