熟悉Virsual Basic开发方式的朋友们在使用Visual C++时,一定发过这样的牢骚:“为什么不能自己设计窗体,为什么不能手动画控件?这能叫Visual(可视化)吗?你看人家Borland C++…… ”的确,制作一个控件丰富的主窗体在以往是件比较繁重的工作,不过这样的境况,在 Visual Studio.NET 中已经有所改善了。在本文中,笔者就将和大家一起领略一下期望中的轻松和愉快。
还记得过去用VC++创建一个窗体的过程么,它意味着相对不少的代码描述一个窗体类(或应用程序类)的对象,每个属性的设置都要对应着一行赋值语句。如果是用Windows API,需要自己书写主事件循环。至于图标、位图什么的还要作为资源去调用。想添加控件就比较麻烦了。首先,你要有一本MFC大全,照着它来添加各种控件类的实例,截取它用到的各种Windows消息……这些也就是对于VC++制作窗口程序,笔者没学下去的原因。
这两天鼓捣VC++.NET,才发现原来这里的VC++也可以使用窗口编辑器。笔者这就带着大家一起用它来创建一个窗口。我们还是从经典的“Hello,World”开始。
我们应该创建一个Windows Form Application(.NET)(Windows窗口应用程序)类型的工程。这里将它命名为HelloWorld。
单击“OK”确定,我们看到.NET为我们自动创建了一个主窗体Form1。可以看到左面的文件列表里,仍然是传统的源文件、头文件和资源,稍有一点变化的就是该Form1的头文件,笔者稍候会详细说明,其实我们以往要做的工作都被封装在这个头文件里。呈现在我们面前的已不再是VC++传统的代码编辑界面,而是一个窗口编辑界面。
读者的开发环境如果使用的是Visual C++6.0的界面风格的话,还看不到最重要的控件条(ToolBox),要在菜单项“视图(View)-〉工具箱(ToolBox)”中把它点开。我们看到了令人兴奋的一个个控件,你可以随意在上面画画控件爽几下,然后我们继续。托拽出一个Button和一个Label,我想这对你来说都应该不陌生。右键单击它们的任何一个,选择菜单的最后一项Properties把属性列表叫出来(应该就出现在文件列表的下面),你可以编辑它们的属性,再也不必去写语句了。试着给咱们的程序换个图标,不用再麻烦地调用资源了,很容易了不是?
保持良好的命名习惯,我将它俩命名为btnSay和lblShow。开始添加代码了,双击btnSay,进入代码界面,光标会自动跳转至按钮单击事件处,其他的东西可以一概不管,只需要在这里添加上代码
this->lblShow->Text = "Hello,the World!";
我想该做得也就这么多了(有点像VB了不是?)毕竟是C++,得编译。按Ctrl+F5编译链接运行,结果如图:
真正的C++程序员这时会思考代码是怎样被组织封装的。我们先来看看文件的组织形式。这里依然是使用资源的形式来用图标、菜单什么的,因此这里有同以往一样的*.rc和resource.h。工程的主体是Form1.h/cpp文件对,主程序也在里面。不过主程序似乎是一空壳,真正的窗体对象信息都在Form1.h里。它现在给我们呈现出一副可视化设计器的姿态,我们右键点击它,在弹出的对话框中选择第二项
终于揭开了它的神秘面纱,看到了隐藏在背后的代码。(有点故弄玄虚了,其实刚才你编写代码时就已经见到它了。这令我也很诧异,头文件里居然会有执行代码!)还有一点要说的,刚才你是不是找不到在那儿修改Form1对象的名字?在代码界面的属性列表里就能改了。我把它改称frmMain。