MFC如何创建具有滚动功能的上下文菜单

时间:2016-01-28 11:11:57

标签: visual-c++ mfc

我需要创建一个具有滚动功能的上下文菜单,因为我需要在其上插入大量文件名,就像Visual Studio 2010的打开文件上下文菜单一样。

Context Menu with scrolling capability

有人知道如何用MFC实现这个吗?

1 个答案:

答案 0 :(得分:2)

如果您有更多项目不适合可见部分,则Windows菜单支持滚动。您可以通过在菜单中插入几百个项目来验证它。

我想问题应该是:如何限制菜单的垂直尺寸(否则会扩展到屏幕的高度)。这是一个例子:

CMenu menu;
menu.CreatePopupMenu();
CString s;
for (int i = 1; i < 100; ++i)
{
    s.Format(L"Item %.3d", i);
    menu.AppendMenu(MF_STRING, i, s);
}
MENUINFO mi = { sizeof(MENUINFO) };
mi.fMask = MIM_MAXHEIGHT;
mi.cyMax = 400;
menu.SetMenuInfo(&mi);
menu.TrackPopupMenu(TPM_RETURNCMD, 100, 100, this);