【问题标题】:How to resize context menu displayed with TrackPopupMenu?如何调整使用 TrackPopupMenu 显示的上下文菜单的大小?
【发布时间】:2012-12-01 09:46:19
【问题描述】:

我使用 TrackPopupMenu API 从 C++ 代码显示上下文菜单。每个菜单项都包含一个 24x24 像素大小的位图。调用添加:

MENUITEMINFO mii = {0};
mii.cbSize = sizeof(mii);
mii.fMask = MIIM_BITMAP;
mii.hbmpItem = hBmpForItem;
SetMenuItemInfo(hMenu, ID_1_MENUITEMID, FALSE, &mii);

这在 Windows Vista/7 上运行良好,但在 Windows XP 上,一些文本较长的菜单项在右侧被截断。所以,我想知道,有没有什么办法可以在菜单显示之前增加它的宽度?

【问题讨论】:

    标签: c++ winapi windows-xp contextmenu


    【解决方案1】:

    将您的菜单项创建为owner-drawn,然后让您的菜单所有者窗口处理WM_MEASUREITEM 消息,以便您可以根据需要指定适当的宽度。

    【讨论】:

    • 谢谢。 owner-drawn 的问题在于,我必须绘制所有内容,这在现代 UI 中并不容易。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 2017-03-09
    • 2016-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    相关资源
    最近更新 更多