必威注册电子书籍教程中心网文荟萃客户留言繁體中文
设为首页
加入收藏
联系必威注册
您当前的位置:92动力网 -> 教程中心 -> 编程经验 -> JAVA DotNet -> 教程内容 退出登录 用户管理
栏目导航
· Visual Basic· Delphi
· Visual C++· C++ Builder
· JAVA DotNet· 其他相关
热门教程
· 如何在Visual Basic...
· 使用Visual Basic操...
· 使用VB6.0设计Activ...
· VB动态调用外部函数...
· 建立一个程序员自己...
· 如何编写高质量的VB...
· [图文] 为更新到Visual Bas...
· 再谈在VB中调用VC++...
· 用VB语言编程实现JP...
· 用DTS实现SQL数据库...
相关教程
· Introduction to OO...
· reflection_1
· reflection_2
· reflection_3
· Building Secure AS...
· Unify the Role-Bas...
· 垃圾收集机制(Garba...
· Introduction to CG...
· Exception
· TApplication

用VC++.net制作WinForm Application
作者:佚名聽聽来源:本站整理聽聽发布时间:2005-12-29 18:02:04聽聽发布人:admin

减小字体 增大字体


聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 VC++.net制作WinForm Application

新的.NET Framework出世了,随之而来的是新的开发方法,开发理念。这本无可厚非的,但微软似乎总是偏爱她的嫡传(VB,VC#, .NET Framework似乎也是为他们量身定做的。唯独大众化的C++被冷落了(虽然MFC也进化到了7.0,对标准C++支持也比以前强了),先进的RAD开发模式始终远离VC++(也许是MFC框架太成熟了,改起来不方便^_^),不过微软为了让VC++也沐浴点.NET的光泽,推出了MC++(Managed Extensions for C++.),C++

程序员眼光一亮,这回我们也可以追随.NET(虽然依然不能像VB,VC#程序员那样用鼠标

指指点点就可以完成一个程序)。Microsoft .NET Framework Class Library .NET 框架类库

聽聽聽 用惯了MFCAPI编程,冷不丁的转向. NET Framework可能还有些不习惯,不过用时间长了,你会发现. NET Framework也不错么(^_^)。其实我们还是在用”MFC”,只不过这次是 MFC……Microsoft .NET Framework Class Library 微软.NET 框架类库”。(^_^

下面我用一个例子来谈谈我的体会我将用MC++制作一个WinForm ApplicationWinForm

.NET的标准GUI界面,功能十分之强大。下面我们就来看看用MC++如何制作一个简单的

Hello,World!程序。

聽聽聽 由于文章篇幅有限,MC++的特性我在这里就不详细介绍了,我将在制作过程中稍加解释。下面就开始了:

聽聽聽 VS.NET中,建立一个VC++新项目,我们把她取名为VCWinFormApp,当然它是个

托管的C++应用程序类型了。之后点击“确定”。等待吧!(我的赛扬366正在接受着VS.NET的考验)一袋烟的功夫,该创建的文件都已经创建好了。看看吧,有什么东西,哇,只有

VCWinFormApp.cpp一个主要文件(我们经常认为是.h,..cpp比较重要),stdafx.hstdafx.cpp

文件里什么也么有。(想一想原来MFC为我们在stdafx.h中添加了那么多东东)。不过不要怕,.NET Framework就是这样,她会让你变懒的(需要你添加的代码很少)。在看看VCWinFormApp.cpp吧。

//////////////////////////////////////////////////////////////////////////////////////////////////

#include "stdafx.h"

#using

#include

using namespace System;

// 这是此应用程序的入口点

int _tmain(void)

{

聽聽聽 // TODO: 请用您自己的代码替换下面的示例代码。

聽聽聽 Console::WriteLine(S"Hello World");

聽聽聽 return 0;

}

//////////////////////////////////////////////////////////////

#using

using namespace System;

两句我们以前未见过的语句,这里简单解释一下, system .NET Framework的最基础的命名空间。

System 命名空间包含基本类和基类,这些类定义常用的值和引用数据类型、事件和事件处理程序、接口、属性和异常处理。

mscorlib.dll是专为MC++定制的dll文件,她为.NET Framework接纳C++铺平了道路。

上面的程序仅仅是一个console程序而不是我们要做的WinForm Application,下面的代码会将她改写成一个

WinForm Application

预备知识

The #using Directive-------用来将一些MC++使用的metadata(元数据)导入程序。如

#using

// 这是使用应用程序向导生成的 VC++

// 应用程序项目的主项目文件。

// This is the main project file for VC++ application project

// generated using an Application Wizard.

#include "stdafx.h"

#using

#include

#using

#using

#using

#using

using namespace System;

using namespace System::Drawing;

using namespace System::Collections;

using namespace System::ComponentModel;

using namespace System::Windows::Forms;

using namespace System::Data;

namespace myspace

{

聽聽

public __gc class Form1 : public System::Windows::Forms::Form

聽聽 {

聽聽 private:

聽聽聽聽聽 Button* button1;

聽聽聽聽聽 Label* label1;

聽聽聽聽 System::ComponentModel::Container* components;

聽聽 public:

聽聽聽聽聽 Form1()

聽聽聽聽 {

聽聽聽聽聽聽聽聽 //

聽聽聽聽聽聽聽聽 // Required for Windows Form Designer support

聽聽聽聽聽聽聽聽 //

聽聽聽聽聽聽聽聽 components = NULL;

聽聽聽聽聽聽聽聽 InitializeComponent();

聽聽聽聽聽聽聽聽 //

聽聽聽聽聽聽聽聽 // TODO: Add any constructor code after

聽聽聽聽聽聽聽聽 // InitializeComponent call

聽聽聽聽聽聽聽聽 //

聽聽聽聽聽 }

聽聽聽聽

聽聽 protected:

聽聽聽聽聽 void Dispose( bool disposing )

聽聽聽聽聽 {

聽聽聽聽聽聽聽聽 if( disposing )

聽聽聽聽聽聽聽聽 {

聽聽聽聽聽聽聽聽聽聽聽 if (components != NULL)

聽聽聽聽聽聽聽聽聽聽聽 {

聽聽聽聽聽聽聽聽聽聽聽聽聽聽 components->Dispose();

聽聽聽聽聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽聽 Form::Dispose( disposing );

聽聽聽聽聽 }

聽聽聽聽聽

聽聽 private:

聽聽聽聽聽 void InitializeComponent()

聽聽聽聽聽 {

聽聽聽聽聽聽聽聽 button1 = new Button();

聽聽聽聽聽聽聽聽 label1 = new Label();

聽聽聽聽聽聽聽聽 SuspendLayout();

聽聽聽聽聽聽聽聽 //

聽聽聽聽聽聽聽聽 // button1

聽聽聽聽聽聽聽聽 //

聽聽聽聽聽聽聽聽 button1->Location = Point(23, 96);

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 button1->Size=System::Drawing::Size(100,60);

聽聽聽聽聽聽聽聽 button1->Name = "button1";

聽聽聽聽聽聽聽聽 button1->TabIndex = 0;

聽聽聽聽聽聽聽聽 button1->Text = "Start my first C++ WinForm Application";

聽聽聽聽聽聽聽聽 button1->Click += new System::EventHandler(this,

聽聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽&Form1::button1_Click);

聽聽聽聽聽聽聽聽 //

聽聽聽聽聽聽聽聽 // label1

聽聽聽聽聽聽聽聽 //

聽聽聽聽聽聽聽聽 label1->Location = Point(150, 84);

聽聽聽聽聽聽聽聽 label1->Name = "label1";

聽聽聽聽聽聽聽聽 label1->TabIndex = 1;

聽聽聽聽聽聽聽聽 //

聽聽聽聽聽聽聽聽 // Form1

聽聽聽聽聽聽聽聽 //

聽聽聽聽聽聽聽聽 AutoScaleBaseSize =System::Drawing::Size(5, 13);

聽聽聽聽聽聽聽聽 ClientSize =System::Drawing::Size(292, 273);

聽聽聽聽聽聽聽聽 Controls->Add(label1);

聽聽聽聽聽聽聽聽 Controls->Add(button1);

聽聽聽聽聽聽聽聽 Name = "Form1";

聽聽聽聽聽聽聽聽 Text = "Form1";

聽聽聽聽聽聽聽聽 ResumeLayout(false);

聽聽聽聽聽 }

聽聽 private:

聽聽聽聽聽 void button1_Click(Object* sender, System::EventArgs* e)

聽聽聽聽聽 {

聽聽聽聽聽聽聽聽 label1->Text = "Hello World!";

聽聽聽聽聽 }

聽聽 };

}

// This is the entry point for this application

int __stdcall WinMain()

{

聽聽 Application::Run(new myspace::Form1());

聽聽聽 return 0;

}

我相信上面的程序大多数C++程序员都应该能看懂的(尤其是熟悉MFCATL的程序员)所以我也不必多说。

有关VC++制作.NET程序的资料可以到www.codoguru.comwww.codeproject.com去看看。

本文例子参考了 Building a .NET Windows Forms App in Visual C++ .NET “,

作者:Kate Gregory

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 2002104


[] [返回上一页] [打 印] [收 藏]
∷相关教程评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图 - 管理登录
Copyright 2019 必威注册. All Rights Reserved .
浙ICP备05047688号