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



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

托管C++程序开发Win表单的文档程序设计(上)
2002-04-27· ·adding··yesky

上一页  1 2 3  

  二、工具栏和状态栏

  工具栏(ToolBar)和状态栏(StatusBar)是Windows Forms两个控件,但它的构造方法和事件的处理与其他普通控件有所不同。下面分别加以讨论。

  1、使用工具栏的一般步骤

  在Windows Forms中使用工具栏通常遵循下列过程:

  (1) 创建一个ToolBar对象,如:

Toolbar *m_pToolBar = new ToolBar();

  (2) 由于工具栏上的按钮通常都会有相应的图像,因而要先构造由按钮图像组成的图像列表,并设置ToolBar对象的ImageList属性。例如下面的代码:

m_pImageList = new ImageList();
m_pImageList->ImageSize = System::Drawing::Size(16, 16);
m_pImageList->TransparentColor = System::Drawing::Color::Transparent;
m_pImageList->Images->Add(Image::FromFile(S"new.bmp"));
m_pImageList->Images->Add(Image::FromFile(S"open.bmp"));
m_pImageList->Images->Add(Image::FromFile(S"help.bmp"));

m_pToolBar = new ToolBar();
m_pToolBar->ImageList = m_pImageList;

  (3) 向工具栏添加按钮,例如下面的代码是添加一个“新建”按钮:

m_pNewButton = new ToolBarButton();
m_pNewButton->ImageIndex = 0;
m_pNewButton->ToolTipText = S"新建";
m_pNewButton->Text = S"新建"; // 设置按钮文本

m_pToolBar->Buttons->Add(m_pNewButton);

  (4) 设置工具栏属性,这些属性通常包括:外观(Appearance)、边框(BorderStyle)、下拉箭头(DropDownArrows)和文本放置(TextAlign)等。例如下面的代码:

m_pToolBar->Appearance = ToolBarAppearance::Flat; // 平面按钮
m_pToolBar->BorderStyle = BorderStyle::Fixed3D; // 3D外观
m_pToolBar->DropDownArrows = true; // 允许按钮有下拉箭头
m_pToolBar->TextAlign = ToolBarTextAlign::Underneath; // 按包钮文本处于图像下面
m_pToolBar->Divider = false; // 栏与栏之间不允许有分隔线

  (5) 处理工具栏事件

  工具栏包含两个常用的事件:ButtonClick和ButtonDropDown事件。前者是当用户单击工具栏按钮时产生时,而后者是当用户单击按钮旁边的下拉箭头时产生的。这两个事件的映射都是通过ToolBarButtonClickEventHandler来进行的。例如下面的代码框架:

m_pToolBar->ButtonClick += new ToolBarButtonClickEventHandler(this,&WinForm::OnToolButtonClick);
...
void OnToolButtonClick( Object* sender, ToolBarButtonClickEventArgs* e)
{
switch (m_pToolBar->Buttons->IndexOf(e->Button))
{
case 0:
// 当第一个工具按钮按下时
break;
case 1:
// 当第二个工具按钮按下时
break;
...
default:
break;
}
}

  2、使用状态栏的一般步骤

  在Windows Forms中使用状态栏要比工具栏简单,具体步骤如下:

  (1) 创建一个StatusBar对象,如:

StatusBar *m_pStatusBar = new StatusBar();

  (2) 为状态栏添加窗格

  例如下列代码:

m_pSBPanel1 = new StatusBarPanel();
m_pSBPanel1->Text = S"就绪";
m_pSBPanel1->BorderStyle = StatusBarPanelBorderStyle::None;
m_pSBPanel1->AutoSize = StatusBarPanelAutoSize::Spring;

m_pStatusBar->Panels->Add(m_pSBPanel1);

m_pSBPanel2 = new StatusBarPanel();
m_pSBPanel2->Text = S"另外一个窗格";
m_pSBPanel2->AutoSize = StatusBarPanelAutoSize::Spring;

m_pStatusBar->Panels->Add(m_pSBPanel2);

  (3) 设置状态栏属性并添加到窗口的Controls集合中

m_pStatusBar->ShowPanels = true; // 显示所有的窗格
Controls->Add(m_pStatusBar);

  需要说明的是,状态栏也有相应的事件,如PanelClick(用户单击状态栏的窗格)等,但这些事件一般很少用到。

  三、综合示例

  这里给出一个菜单栏、工具栏和状态栏的综合示例程序,其结果如图2所示。



上一页  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应用程序
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!