您现在的位置是: 软件 > 开发者网络 > 程序方舟 > 开发专栏 > Visual C++开发 > 正文
·速成电脑精英(包分配)白领高薪一族从这里开始



-Java套接字编程(下)
-MediaStudio Pro 6.5教程
-三款卸载软件最新试用
-基于Visual C++的Winsock API研究

托管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  下一页

【责任编辑:方舟】
【发表评论】【关闭窗口】
■ 相关内容
 C++ 代码优化
 论C/C++程序员的门户之见
 Visual C++ 文件处理及打印绘图
 托管C++程序开发——Win表单的控件使用
 Visual C++ MFC/ATL开发
 用托管C++开发Win表单的一般方法
 Visual C++ 数据库开发
 Visual C++实现视频图像处理技术
 Visual C++ .NET编程:托管C++概述
 理解Visual C++.NET定制MFC应用程序
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!