| | | 托管C++程序开发Win表单的文档程序设计(上) | | 2002-04-27·
·adding··yesky
| 上一页 1 2 3 下一页 2、创建多级菜单
在应用程序窗口中,最上面的菜单栏的菜单是顶层菜单、每个顶层菜单项还有相应的下拉子菜单,每一个下拉子菜单项还有下一级的子菜单,......。实际上,在Win表单中,除了顶层菜单是用MainMenu来构造外,其余的菜单项都是用MenuItem来构造。若一个菜单项还包含由若干个菜单项组成的子菜单,那么在构造时既可以在其构造函数进行指定,或者通过MenuItems的Add方法来添加,例如下面的代码是构造一个如图1所示的多级菜单。
m_pFileMenuNew = new MenuItem( S"新建(&N)", new EventHandler(this, &WinForm::OnFileNew), Shortcut::CtrlN); m_pFileMenuNew->ShowShortcut = true; m_pFileMenuOpen = new MenuItem( S"打开(&O)", new EventHandler(this, &WinForm::OnFileOpen), Shortcut::CtrlO); m_pFileMenuOpen->ShowShortcut = true; m_pFileMenuExit = new MenuItem( S"退出(&X)", new EventHandler(this, &WinForm::OnFileExit));
MenuItem* rItems[] = new MenuItem *[3]; rItems[0] = m_pFileMenuNew; rItems[1] = m_pFileMenuOpen; rItems[2] = m_pFileMenuExit;
m_pFileMenu = new MenuItem( S"文件(&F)", rItems);
m_pEditMenuCut = new MenuItem( S"剪切(&X)"); m_pEditMenuCut->Shortcut = Shortcut::CtrlX; m_pEditMenuCut->ShowShortcut = true; m_pEditMenuCut->Enabled = false; m_pEditMenuCopy = new MenuItem( S"复制(&C)"); m_pEditMenuCopy->Shortcut = Shortcut::CtrlC; m_pEditMenuCopy->ShowShortcut = true; m_pEditMenuCopy->Enabled = false; m_pEditMenuPaste = new MenuItem( S"粘贴(&V)"); m_pEditMenuPaste->Shortcut = Shortcut::CtrlV; m_pEditMenuPaste->ShowShortcut = true; m_pEditMenuPaste->Enabled = false;
rItems[0] = m_pEditMenuCut; rItems[1] = m_pEditMenuCopy; rItems[2] = m_pEditMenuPaste;
m_pEditMenu = new MenuItem( S"编辑(&E)", rItems);
m_pViewMenuToolBar = new MenuItem( S"工具栏"); m_pViewMenuToolBar->Checked = true; m_pViewMenuStatusBar = new MenuItem( S"状态栏"); m_pViewMenuStatusBar->Checked = true;
m_pViewMenu = new MenuItem( S"查看(&V)"); m_pViewMenu->MenuItems->Add(m_pViewMenuToolBar); m_pViewMenu->MenuItems->Add(m_pViewMenuStatusBar);
m_pAboutMenu = new MenuItem( S"关于...(&A)"); m_pHelpMenu = new MenuItem( S"帮助(&H)"); m_pHelpMenu->MenuItems->Add(m_pAboutMenu);
rItems[0] = m_pFileMenu; rItems[1] = m_pEditMenu; rItems[2] = m_pViewMenu;
m_pMenu = new MainMenu(rItems); m_pMenu->MenuItems->Add(m_pHelpMenu);
|
 | 3、为应用程序添加菜单的过程
这个过程比较简单,首先,创建所需要的多级,然后创建顶层菜单(MainMenu),最后将窗口的Menu属性值设为该MainMenu即可:
Menu = m_pMenu;
4、使用快捷菜单
在Win表单使用快捷菜单是极其方便的,只要将要显示的菜单按前面的方法构造好,然后设置相应的窗口ContextMenu属性即可,如下面的代码:
...//同上面的代码 MenuItem* cItems[] = new MenuItem *[3]; cItems[0] = m_pFileMenuNew; cItems[1] = m_pFileMenuOpen; cItems[2] = m_pFileMenuExit;
Windows::Forms::ContextMenu* pContextMenu = new Windows::Forms::ContextMenu(cItems); ContextMenu = pContextMenu; | 需要说明的是,由于窗口的ContextMenu属性名与类名ContextMenu相同,因此需要像上面代码那样指明相应的具体名称空间。
上一页 1 2 3 下一页 | | | 感谢
访问天极网,如果您觉得该文章涉及版权问题,请看这里!
|
|