更改 MFC 菜单以显示所有项目而不是箭头?
Change MFC Menu to show all items instead of arrows?
有一个 MFC 应用程序,它使用具有 CMFCMenuBar
和工具栏的各种可用样式之一。对于 CMFCMenuBar
它只显示使用的项目,否则必须单击向下的双箭头才能看到其余项目。我该如何设置它,使其始终显示所有项目,而不必使用箭头?
TIA!!
尝试使用 CMFCMenuBar::SetShowAllCommands
方法。
根据 Microsoft 的说法,您应该调用
CMFCMenuBar::SetShowAllCommands(TRUE);
https://docs.microsoft.com/en-us/cpp/mfc/reference/cmfcmenubar-class?view=vs-2019#setshowallcommands
这取决于菜单的创建和初始化方式。在 CMainFrame
class 中查找以下代码:
CList<UINT, UINT> lstBasicCommands;
lstBasicCommands.AddTail(ID_FILE_NEW);
lstBasicCommands.AddTail(ID_FILE_OPEN);
...
CMFCToolBar::SetBasicCommands(lstBasicCommands);
如果找到,则移除对SetBasicCommands
的调用
或保留SetBasicCommands
,同时将所有命令添加到lstBasicCommands
有一个 MFC 应用程序,它使用具有 CMFCMenuBar
和工具栏的各种可用样式之一。对于 CMFCMenuBar
它只显示使用的项目,否则必须单击向下的双箭头才能看到其余项目。我该如何设置它,使其始终显示所有项目,而不必使用箭头?
TIA!!
尝试使用 CMFCMenuBar::SetShowAllCommands
方法。
根据 Microsoft 的说法,您应该调用
CMFCMenuBar::SetShowAllCommands(TRUE);
https://docs.microsoft.com/en-us/cpp/mfc/reference/cmfcmenubar-class?view=vs-2019#setshowallcommands
这取决于菜单的创建和初始化方式。在 CMainFrame
class 中查找以下代码:
CList<UINT, UINT> lstBasicCommands;
lstBasicCommands.AddTail(ID_FILE_NEW);
lstBasicCommands.AddTail(ID_FILE_OPEN);
...
CMFCToolBar::SetBasicCommands(lstBasicCommands);
如果找到,则移除对SetBasicCommands
或保留SetBasicCommands
,同时将所有命令添加到lstBasicCommands