:
String^>^args)
{
Console:
:
WriteLine(L"HelloWorld!
\n");
Console:
:
WriteLine(L"Press'Enter'keytoquit............");
Console:
:
ReadLine();
return0;
}
这是一个传统的命令行程序,现在来执行这个程序,点击如下图所示的菜单就可以运行程序了:
如果是第一次运行VisuallStudio2005,可能会出现如下的提示,这时点击“是”就可以了。
程序的运行结果如下(按下回车键结束程序):
第一个小程序就写好了,但是这是一个传统的命令行程序,体现不出Windows编程的特点,所以下面再来写一个真正具有Windows风格的程序。
刚才已经建立了一个“解决方案”和一个“项目”,现在在这个“解决方案”中再添加一个“项目”,在“解决方案”名字上点击鼠标右键,选择“新建项目”,如下图所示:
这时会出现一个对话框,让用户选择项目的类型,现在要写的是一个Windows程序,所以选择“Windows窗体应用程序”,然后在“名称”一栏里面填入项目的名字,在这里叫它“Hello”,如下图所示:
项目建立好了就会出现如下图所示的界面,一个空白的窗体。
在上图中可以看到,现在有两个项目在解决方案“Demo”里面,一个叫“DemoOne”,一个叫“Hello”,这两个程序互相不会影响。
注意到其中“DemoOne”的字样是粗体,这表示“DemoOne”这个项目是启动项目,这就是说,用户点击“启动调试”菜单运行程序时,“DemoOne”这个程序将被运行,但是现在需要调试的是“Hello”这个程序,所以需要把“Hello”设为启动项目,这只需在“Hello”上面点击鼠标右键,选“设为启动项目”就可以了,如下图所示:
现在这个空白的窗体程序什么事情都干不了,但是这个程序是个很好的起点,用户可以在它的基础上添加各种其它的功能。
下面给它添加一个按钮:
首先将鼠标箭头移到屏幕右侧的“工具箱”标签上面,这是屏幕右边会弹出一个“工具箱”窗口,里面列出了各种各样的窗口控件,如下图所示:
这时用鼠标左键点一下“Button”工具,如下图所示:
然后在“Form1”窗体上面拉出一个按钮,如下图所示,系统会自动的给这个按钮起个名字叫“Button1”:
按钮是做好了,但是这时的按钮还只是个摆设,没有实际的功能,也就是说,当运行程序,按下这个按钮的时候,什么事情都不会发生。
这是因为程序中所有的功能都必须由相应的代码来实现,而现在并没有为按下按钮这个操作编写代码,所以当然按钮被按下时就什么也不会发生了。
现在来为“按下按钮”这个操作写一些代码。
用鼠标左键双击屏幕上面的“Button1”按钮,此时VisuallStudio2005会自动的将屏幕切换到代码窗口,并给“Button1”按钮添加一个按钮被按下时的响应函数,如下图所示:
这个函数名字叫button1_Click,其中button1是按钮的名字,Click表示这个函数将在按钮被点中时执行。
现在来给它添加一个功能,让按钮在被按下时弹出一个消息框,上面写着“WelcometouseVisualC++2005”。
为了完成这个功能,需要调用系统的一个函数MessageBox:
:
Show(),这个函数的功能就是弹出一个消息框。
具体的代码如下:
private:
System:
:
Voidbutton1_Click(System:
:
Object^sender,System:
:
EventArgs^e){
MessageBox:
:
Show("Hello!
","WelcomeToUseVisualC++2005");
}
代码写好后就可以运行这个程序来看看效果了。
同样选菜单“调试/启动调试”,或者直接按下快捷键“F5”就可以运行程序了,如下图所示:
还可以按下下图中所示的“启动调试”按钮,也可以运行程序,这是一个快捷按钮:
程序运行成功,如下图所示:
现在来点击一下窗口中的“button1”按钮,看看是不是有如下图所示的消息框弹出来?
2.查看系统库函数的帮助说明
在开发Windows软件的过程中需要调用大量的系统库函数,如果在写程序的时候看到一个库函数不知道它的用法,可以把光标移动到这个函数上面,然后按下“F1”键,就可以看到关于这个函数的帮助说明了。
第一次使用这个功能的时候系统可能会显示如下图所示的提示,这时可以选择“使用本地帮助做为主要源”:
以系统库函数“Console:
:
WriteLine”为例,可以看到如下图所示的帮助说明:
3.设置控件的属性
现在程序运行后窗口的标题还是“Form1”,这个是系统自动给起的名字。
新的程序需要以自己的名字命名,那么怎么给窗口改名字(标题)呢?
很简单,只要在窗体上按下鼠标右键,就会弹出一个菜单,如下图所示:
点击“属性”,这是屏幕右边就会弹出一个琳琅满目的属性设置框,里面显示了这个窗口的各种可以修改的属性,或者叫参数,如下图所示:
修改其中的“Text”属性,如上图所示。
把它改成“第一个程序”,改完后会发现窗口的标题立即就换成了“第一个程序”,如下图所示:
第一步修改完成了。
现在进一步把那个叫“button1”的按钮的名字也改掉,毕竟一个按钮叫“button1”,用户会不知道这是什么意思。
用鼠标左键点中按钮“button1”,在右侧的属性设置框中修改“Text”属性,如下图所示:
把它改成“执行”,改好后按钮上面的字会立即变成“执行”,如下图所示:
现在再来运行一下这个程序,看看界面是不是改过来了?
如下图所示:
4.完成的程序
下面把完整的源代码列在这里,以供参考:
#pragmaonce
namespaceHello{
usingnamespaceSystem;
usingnamespaceSystem:
:
ComponentModel;
usingnamespaceSystem:
:
Collections;
usingnamespaceSystem:
:
Windows:
:
Forms;
usingnamespaceSystem:
:
Data;
usingnamespaceSystem:
:
Drawing;
///
///Form1摘要
///
///警告:
如果更改此类的名称,则需要更改
///与此类所依赖的所有.resx文件关联的托管资源编译器工具的
///“资源文件名”属性。
否则,
///设计器将不能与此窗体的关联
///本地化资源正确交互。
///
publicrefclassForm1:
publicSystem:
:
Windows:
:
Forms:
:
Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO:
在此处添加构造函数代码
//
}
protected:
///
///清理所有正在使用的资源。
///
~Form1()
{
if(components)
{
deletecomponents;
}
}
private:
System:
:
Windows:
:
Forms:
:
Button^button1;
protected:
private:
///
///必需的设计器变量。
///
System:
:
ComponentModel:
:
Container^components;
#pragmaregionWindowsFormDesignergeneratedcode
///
///设计器支持所需的方法-不要
///使用代码编辑器修改此方法的内容。
///
voidInitializeComponent(void)
{
this->button1=(gcnewSystem:
:
Windows:
:
Forms:
:
Button());
this->SuspendLayout();
//
//button1
//
this->button1->Location=System:
:
Drawing:
:
Point(73,70);
this->button1->Name=L"button1";
this->button1->Size=System:
:
Drawing:
:
Size(133,75);
this->button1->TabIndex=0;
this->button1->Text=L"执行";
this->button1->UseVisualStyleBackColor=true;
this->button1->Click+=gcnewSystem:
:
EventHandler(this,&Form1:
:
button1_Click);
//
//Form1
//
this->AutoScaleDimensions=System:
:
Drawing:
:
SizeF(6,13);
this->AutoScaleMode=System:
:
Windows:
:
Forms:
:
AutoScaleMode:
:
Font;
this->ClientSize=System:
:
Drawing:
:
Size(292,271);
this->Controls->Add(this->button1);
this->Name=L"Form1";
this->Text=L"第一个程序";
this->ResumeLayout(false);
}
#pragmaendregion
private:
System:
:
Voidbutton1_Click(System:
:
Object^sender,System:
:
EventArgs^e){
MessageBox:
:
Show("Hello!
","WelcomeToUseVisualC++2005");
}
};
}
5.输入数据的控件
一般Windows里面的应用程序都需要用户输入数据的,这个程序也不例外。
下面就来给它添加输入数据的功能。
首先把执行按钮缩小并移动到窗口下面,然后在右侧的工具箱中选取“TextBox”工具,如下图所示:
在窗口中拉出一个输入框,如下图所示:
在右侧的属性修改框中将它的名字改成“InputLine”,如下图所示:
这是将会发现代码中多了一行关于这个输入框的声明,如下图所示:
然后在函数button1_click中添加如下的代码:
private:
System:
:
Voidbutton1_Click(System:
:
Object^sender,System:
:
EventArgs^e){
String^line="你输入的是:
"+InputLine->Text;
MessageBox:
:
Show(line);
}
按下“F5”键执行程序,在输入框中输入“aaa”,如下图所示:
然后点击“执行”按钮,就会弹出如下图所示的消息框:
现在屏幕上的输入框没有任何提示,用户使用这个程序会不知道要输入什么东西。
下面来给它加个提示。
在右侧的工具箱里选“Label”工具,如下图所示:
在窗体中拉出一个提示标签,如下图所示:
点中这个标签,在右侧的属性修改框中把“Text”一栏改为“请输入一些文字”,如下图所示:
运行程序就会发现现在输入框有了提示文字,如下图所示:
第三章Windows编程进阶
公司人事档案管理软件
下面来学习设计一个公司人事档案管理软件,通过学习设计这个软件,将会学到很多新的控件的使用方法。
新建一个项目“HRManagement”,如下图所示:
把Form的尺寸拉大一些,因为将要在里面加入很多控件,如下图所示:
1.列表框控件
首先给Form添加一个“员工列表”列表框,点击“工具箱”里面的“ListBox”控件,如下图所示:
在Form里面拉出一个列表框,并将其命名为“EmployeeList”,如下图所示:
然后在Form里面加入一个“姓名”输入框,将其命名为“EmployeeName”,如下图所示:
2.单选框控件
如上图所示在“工具箱”里面选中“GroupBox”控件,在Form里面拉出一个“性别”框,然后在“工具箱”里面选中“Radiobutton”控件,在“性别”框里面拉出一个“男”,一个“女”两个Radio按钮,分别命名为GenderMale,GenderFemale,如下图所示:
3.组合框控件
如下图所示在“工具箱”里面选中“ComboBox”控件,在Form里面拉出一个“部门”选择框,命名为Department:
在这个“部门”选择框中用户可以选择这名员工是属于哪个部门的。
这就需要预先设置好各个部门的名称,这些数据将在“部门”选择框的属性中输入。
点击“部门”选择框,在右侧的属性修改框中找到名为“Items”的一栏,如下图所示:
点击右侧的“...”,将会弹出一个输入框,让你输入选择框里面将要显示的内容,比如说公司各个部门的名称,现在输入如下图所示的部门名称:
再给程序添加一个“电话”输入框,命名为Phone,如下图所示:
为了把“部门”和“电话”两个控件对齐排列,可以同时选择这两个控件,然后点击上图所示的“对齐”按钮就可以了。
4.复选框控件
选中工具箱里面的“CheckBox”,在Form里面添加一个“实习生”选框,命名为IsIntern,如下图所示:
再在Form里面添加一个“添加”按钮,命名为AddButton,如下图所示:
现在软件已经做了一半了,再给它添加一些代码,让它可以实际运行起来。
首先先新建一个文件叫Tools.h,输入下面的代码:
//HeaderfileforTools
namespaceHRManagement{
usingnamespaceSystem;
publicrefclassEmployeeRecord{
public:
String^m_Name;
String^m_Gender;
String^m_Department;
String^m_Phone;
String^m_IsIntern;
String^m_Photo;
EmployeeRecord(){};
};
}
然后在Form1.h文件里面找到如下的这行代码:
publicrefclassForm1:
publicSystem:
:
Windows:
:
Forms:
:
Form
在这个类里面添加如下的代码:
publicrefclassForm1:
publicSystem:
:
Windows:
:
Forms: