0

我使用 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 上,一些带有较长文本的菜单项在右侧被截断。所以,我想知道,有没有办法在菜单显示之前增加菜单本身的宽度?

4

1 回答 1

0

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

于 2012-12-02T10:35:25.580 回答