12

不久前,我尝试在 CMenu 项目上添加一个工具提示用于测试目的。现在我需要它,我又面临同样的问题。

这个问题和答案: MFC:如何在 Cmenu 项目中添加工具提示?
根本没有帮助我,因为这种“换行魔法”根本不起作用。

此外,似乎我不是唯一一个有问题的人: 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();
}

结果是这样的:

在此处输入图像描述

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

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

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


编辑:正如我之前在评论中提到的,这是一个示例解决方案,它具有重现问题的最低要求。(请参阅CMenuListCtrl.cpp(100)
使用 VS2010 和 VS2015 测试(结果相同)。

4

1 回答 1

1

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

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

在此处输入图像描述

于 2015-08-17T09:21:13.560 回答