科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件托管C++程序开发Win表单文档表单的文档程序程序设计(上)

托管C++程序开发Win表单文档表单的文档程序程序设计(上)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在Windows桌面程序中,应用程序类型通常有:对话框、单文档、多文档以及顶层显示的文档应用程序等

作者:Adding 来源:YESKY 2007年11月16日

关键字: 托管C++ Win 表单文档程序 设计

  • 评论
  • 分享微博
  • 分享邮件
在Windows桌面程序中,应用程序类型通常有:对话框、单文档、多文档以及顶层显示的文档应用程序等。事实上,文档应用程序是最主要最有用的应用程序类型。Visual C++.NET新的MFC方式提供上述类型的应用程序向导。但在托管C++中,由于所开发的是Windows Forms应用程序,因而在构造方法、程序设计等方面均与MFC有着极大的区别。本篇首先讨论菜单、工具栏和状态栏的设计及其事件的映射等内容,然后讨论单文档/多文档应用程序的设计方法。

  一、菜单

  .NET框架中的Windows表单为菜单提供了Menu基类,这个基类不允许用户直接实例化,它有三个派生类:MainMenu、MenuItem和ContextMenu。MainMenu用来构造一个主菜单,所有菜单都是由MenuItem类的对象组成的,ContextMenu用来生成快捷菜单,即当用户右击鼠标时所弹出的上下文菜单。

  1、菜单项操作

  MenuItem类封装用户菜单所需的属性、事件和方法,下面就其属性和事件分别说明:

  (1) 菜单项属性

  使用过MFC菜单编辑器的用户都知道,MFC菜单项属性通常有菜单文本、标识、是否是分隔符、是否在菜单前有选中标记以及菜单的提示信息等。但在.NET框架中,菜单项属性最常用的有:菜单文本(Text)、菜单快捷键以及菜单命令的处理。例如下面的代码:

m_pFileMenuNew = new MenuItem();
m_pFileMenuNew->Text = S"打开(&O)";
m_pFileMenuNew->Shortcut = Shortcut::CtrlO;
m_pFileMenuNew->ShowShortcut = true; // 将快捷键显示在菜单文本之后
m_pFileMenuNew->Click += new EventHandler(this, &WinForm::OnFileOpen);
// 添加该菜单项的命令处理函数句柄

  当然,菜单项的这些属性也可直接在其MenuItem类构造函数中进行设置,如下列代码:

m_pFileMenuNew = new MenuItem(
S"打开(&O)",
new EventHandler(this, &WinForm::OnFileOpen),
Shortcut::CtrlO);
m_pFileMenuNew->ShowShortcut = true;

  除了上述属性外,还有IsParent(是否是父菜单项)、ShowShortcut(是否在菜单文本后面显示相应的快捷键内容)、Visible(菜单项是否可见)、Enabled(菜单是否激活)以及Checked(菜单项前有选中标记)和RadioCheck(菜单项带有单选标记)等。

  需要说明的是,如果想要将某菜单项变成一个分隔符(水平线),则只需将该菜单项的Text属性设为"-"即可。

  (2) 菜单事件及其处理

  MenuItem菜单项事件常用的主要有Click(选定菜单)和select(光标停在菜单项)。菜单事件的处理和控件一样,基本上都是通过EventHandler来映射一个事件处理函数。例如上面的“new EventHandler(this, &WinForm::OnFileOpen)”,在OnFileOpen中可以添加相关的用户代码:

void OnFileOpen(Object *sender, EventArgs *e)
{
OpenFileDialog *dlg = new OpenFileDialog();
dlg->Filter = S"所有文件|*.*";
dlg->ShowDialog();
}
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章