科技行者

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

知识库

知识库 安全导航

至顶网软件频道基础软件VC++.NET中使用Windows.Forms

VC++.NET中使用Windows.Forms

  • 扫一扫
    分享文章到微信

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

本文解释了在VC.NET中解析XML的方法和技巧

作者:XuanTZ 来源:放飞技术网 2007年11月16日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
程序为你定义了一个命名空间HelloWorld,命名空间可以简单的理解为完成相似功能的类的集合。在这里,就是该空间里的类共同为程序"HelloWorld"“卖力气”。之后的一些using namespace xxx;语句表示将要使用到System空间里的这些类,都是已定义好的。之后的代码

public __gc class frmMain : public System::Windows::Forms::Form
{
 public:
 frmMain(void)
 {
  InitializeComponent();
 }

 protected:
 void Dispose(Boolean disposing)
 {
  if (disposing && components)
  {
   components->Dispose();
  }
  __super::Dispose(disposing);
 }
 private: System::Windows::Forms::Button * btnSay;
 private: System::Windows::Forms::Label * lblShow;
 private:
 ///
 /// Required designer variable.
 ///
 System::ComponentModel::Container * components;

 ///
 /// Required method for Designer support - do not modify
 /// the contents of this method with the code editor.
 ///
 void InitializeComponent(void)
 {
  this->btnSay = new System::Windows::Forms::Button();
  this->lblShow = new System::Windows::Forms::Label();
  this->SuspendLayout();
  //
  // btnSay
  //
  this->btnSay->Location = System::Drawing::Point(72, 152);
  this->btnSay->Name = S"btnSay";
  this->btnSay->Size = System::Drawing::Size(144, 24);
  this->btnSay->TabIndex = 0;
  this->btnSay->Text = S"Say Hello";
  this->btnSay->Click += new System::EventHandler(this, button1_Click);
  //
  // lblShow
  //
  this->lblShow->Font = new System::Drawing::Font(S"SimSun", 15,       System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point, (System::Byte)134);
  this->lblShow->ForeColor = System::Drawing::SystemColors::Desktop;
  this->lblShow->Location = System::Drawing::Point(48, 56);
  this->lblShow->Name = S"lblShow";
  this->lblShow->Size = System::Drawing::Size(192, 24);
  this->lblShow->TabIndex = 1;
  //
  // frmMain
  //
  this->AutoScaleBaseSize = System::Drawing::Size(6, 14);
  this->ClientSize = System::Drawing::Size(292, 273);
  this->Controls->Add(this->lblShow);
  this->Controls->Add(this->btnSay);
  this->Name = S"frmMain";
  this->Text = S"Form1";
  this->ResumeLayout(false);

 }


 private: System::Void button1_Click(System::Object * sender, System::EventArgs * e)
 {
  this->lblShow->Text = "Hello,the World!";
 }

};

  是对Form1类的完整定以及实现。可以看到,我们向窗体加进来的控件成为了它的成员变量,类型就是相应控件类的指针。因此在代码中引用控件时,要指明“this->”。窗体的构造函数中调用了void InitializeComponent(void),负责初始化所有的控件和主窗体。这些赋值语句就对应着设计界面上你在属性列表里做的修改动作,实际上这种在初始化时给属性赋值的做法同以往完全一样。你可以在这里直接修改某某控减的某某值。注意

this->btnSay->Click += new System::EventHandler(this, button1_Click);

  btnSay->Click是指按钮的Click事件,button1_Click就是后面那个处理单击事件的成员函数的指针。这就如同传统的WindowProc()函数一样,系统截获事件后,会调用你指定的函数处理。这一行就是将该函数与系统预留的回调函数绑定。要处理控件的其他事件,以同样的方式将你的事件处理函数指针赋给Ctrl->Event(Ctrl代表任意控件,Event代表任意事件)。你会发现,当我们在设计界面双击某一控件时,会自动加入类似上面的代码,并等待你添加它的函数体,也就是事件处理过程,而自动添加的都是其默认事件,如按钮的Click,窗体的Load等。这样很类似于VB的工作方式。

  上面笔者简单地将代码和设计联系了起来,下面说说更有意思的。有两件事一直是实现VC++窗体很头疼的,就是图片和菜单。现在有了熟悉的PictureBox控件,图形变得简单了一些。菜单的编辑更加简单。向窗体添加一个MainMenu控件,点击那个灰色的"TYPE HERE"输入菜单项,双击已编辑好的项目就可以编写菜单事件了,比起原来作为资源来添加,既直观又不容易错。我想你会大声高呼:“这就是个VB!”的确,我也这么想。



  说了这么多,你会猜到程序设计变得如此方便的同时就会有什么东西作为代价了,对,那一定就是性能。C++在同类语言中一向是以性能著称的,正是因为C++程序员能够对整个程序进行灵活的控制,才使其具有高性能,不管是在类的设计、程序流程还是内存管理等等方面。因此有时候繁重的工作量是必需的。现在代码被封装了,方便的同时也存在降低性能的可能性。但对于一般的应用程序来说,这倒是不算什么问题。毕竟高效率的开发方式是很容易让人接受的。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

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

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