VS2008SP1/VS2010 展开所有菜单下的子菜单项(默认是部分菜单折叠显示)

来源:互联网 发布:北京java工程师招聘 编辑:程序博客网 时间:2024/04/29 09:05
 VS2008SP1/VS2010新建的SDI/MDI窗口默认有些菜单是折叠的,如下图所示:

如果要想展开该菜单项的话,可以修改CMainFrame类的OnCreate函数中的代码,里面有这样一段:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){if (CMDIFrameWndEx::OnCreate(lpCreateStruct) == -1)return -1;// ... ... 省略代码 ... ...// enable menu personalization (most-recently used commands)// TODO: define your own basic commands, ensuring that each pulldown menu has at least one basic command./*CList<UINT, UINT> lstBasicCommands;lstBasicCommands.AddTail(ID_FILE_NEW);lstBasicCommands.AddTail(ID_FILE_OPEN);lstBasicCommands.AddTail(ID_FILE_SAVE);lstBasicCommands.AddTail(ID_FILE_PRINT);lstBasicCommands.AddTail(ID_APP_EXIT);lstBasicCommands.AddTail(ID_EDIT_CUT);lstBasicCommands.AddTail(ID_EDIT_PASTE);lstBasicCommands.AddTail(ID_EDIT_UNDO);lstBasicCommands.AddTail(ID_APP_ABOUT);lstBasicCommands.AddTail(ID_VIEW_STATUS_BAR);lstBasicCommands.AddTail(ID_VIEW_TOOLBAR);lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2003);lstBasicCommands.AddTail(ID_VIEW_APPLOOK_VS_2005);lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_BLUE);lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_SILVER);lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_BLACK);lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_AQUA);lstBasicCommands.AddTail(ID_SORTING_SORTALPHABETIC);lstBasicCommands.AddTail(ID_SORTING_SORTBYTYPE);lstBasicCommands.AddTail(ID_SORTING_SORTBYACCESS);lstBasicCommands.AddTail(ID_SORTING_GROUPBYTYPE);CMFCToolBar::SetBasicCommands(lstBasicCommands);*/return 0;}

只要将上面的这段代码注释掉即可。注释掉以后运行该程序,显示效果如下所示:


看下MSDN文档对CMFCToolBar::SetBasicCommands 函数的说明:
// CMFCToolBar::SetBasicCommands /*Sets the list of commands that are always displayed when a user opens a menu. */static void __stdcall SetBasicCommands(   CList<UINT,UINT>& lstCommands );/*Parameters[in] lstCommandsA reference to a CList object that contains a collection of commands. RemarksA basic command is always displayed when the menu is opened. This method is meaningful when the user chooses to view recently used commands. Use the CMFCToolBar::AddBasicCommand method to add a command to the list of basic commands. Use the CMFCToolBar::GetBasicCommands method to retrieve the list of basic commands that is used by your application.*/
原创粉丝点击