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

标签 visual-c++ mfc

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

Context Menu with scrolling capability

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

最佳答案

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

关于visual-c++ - MFC 如何创建具有滚动功能的上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35059899/

相关文章:

c++ - 如何找出 cstyle cast 的实际作用?

c++ - 两个项目之间的 MFC CString 链接器错误

c++ - 构建标准 :map only once within a method

windows - 从标题栏中删除图标和系统菜单

c++ - VC6 到 VS2013 MFC 运行时错误

c# - 你如何在 C++ 中调用 C# 方法?

visual-c++ - DAQ软件替代

c++ - 实现递归冒泡排序时遇到栈溢出

c++ - GetModuleHandle 在 Visual C++ 中如何工作

c++ - 将自定义变量从 MFCApplication32Doc 移动到 MFCApplication32View