【问题标题】:MFC How to create a context menu with scrolling capabilityMFC 如何创建具有滚动功能的上下文菜单
【发布时间】:2016-01-29 00:50:37
【问题描述】:

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

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

【问题讨论】:

  • 内置菜单已经做到了这一点。请注意,在菜单中包含这么多项目并不是非常用户友好。解释为什么你不经常看到它。如果您需要显示这么多项目,至少将它们放在不需要太多鼠标灵巧度的列表框中。
  • @Cody Gray:我没有考虑过使用列表框。好主意。

标签: visual-c++ mfc


【解决方案1】:

如果您的项目多于可见部分,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);

【讨论】:

  • 你说得对,问题表述不好,应该是“如何限制菜单的垂直大小”。
猜你喜欢
  • 2020-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-23
  • 1970-01-01
  • 2013-08-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多