您的位置: 旅游网 > 女人

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

发布时间:2019-09-13 19:08:17

在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();

}

急性心肌梗塞如何治疗
血栓是如何形成的
宝宝半夜发烧怎么办
孩子积食吃什么药最好
猜你会喜欢的
猜你会喜欢的