1、编Visual C+程序首先要创建一个良好的可视化界面,而每个程序界面是由对话框(Dialog)和一些必要的控件(Control)构成的。界面设计的一般步骤为:1)在对话框上布置控件。2)设置各控件属性。3)设置对话框属性。,创建一个对话框应用程序的步骤如下:1、在VC+集成环境中,选择文件File-新建New菜单项-工程Project-MFC AppWizard (exe)。2、Projiect Name文本框中输入项目名称和存储位置。3、在MFC AppWizard-Step1 对话框中选择基于对话框的应用程序(Dialogbased),语言支持选择简体中文。4、在AppWizard弹出的
2、MFC AppWizardStep2对话框中,取消对About Box的选择,单击“Finish”按钮完成项目的设定工作。,11.1 与对话框界面设计相关的窗口,对话框编辑窗口:设计对话框的场所。工具箱窗口:提供给对话框设计必要的控件。属性窗口:浏览并设定对话框、控件的属性。11.1.1 资源管理器 在资源管理器中可以编辑对话框。如果对话框没有显示,可以按以下步骤打开对话框: 单击工作空间的“Resource View”选项卡-打开资源管理器-展开Dialog节点-双击DIALOG项目打开对话框编辑窗口。,11.1.2 工具箱窗口在工具栏上右击-选择Controls工具箱,打开工具箱。工具箱窗
3、口每一个图形按钮各代表一种控件当把鼠标移到某个图形按钮上时会出现文字提示控件的类型提示。11.1.2 属性窗口 Visual C+的每个控件的属性都不尽相同,每个控件的属性窗口不一样,但是显示属性窗口的方法是一样的。 步骤:选择对话框或者控件-右单击鼠标键-选择Properties,在属性窗口中可以设置对话框和控件的属性。,11. 2 在对话框上设置控件,设置步骤:1、选取控件:在工具箱中双击该控件将其添加对话框中。2、改变控件的位置:在对话框中用鼠标拖动的方法将控件移到适当的位置。3、调整控件大小:单击该控件以选取控件,控件周围出现8个小蓝点,把鼠标移动到任何一个小蓝点上,鼠标指针的形状变成
4、双箭头,按下鼠标左键、拖动、再释放鼠标左键即叫调整控件的大小。 4、设置对象属性:选择对象(对话框或者控件)-单击鼠标右键-选择Properties-打开相应对象的属性窗口,在属性窗口中可以设置对话框和控件的属性。,第一步:选择文件File-新建New菜单项-工程Project-MFC AppWizard (exe)-在Step1 中选择基于对话框的应用程序-Step2中-取消对About Box的选择,单击“Finish”按钮完成项日的设定工作。建立一个对话框应用程序: 第二步:在对话框上设置控件及其属性:(可以省略)第三步:设置函数 选择“确定”按钮-右击-选择“建立类向导”-在MFC A
5、ppWizard选项卡中: Project :本项目名 Class name:C本项目名 View Object IDs:IDOK Messages:BN_CLICKED 选择“Add Function”-“Edit Code”,11.3 对话框设计举例1-简单应用,3、写入下例红色代码:void CAbcDlg:OnOK() / TODO: Add extra validation here CClientDC dc(this); / this一般指向本窗口或当前活动视图 dc.Rectangle(10,10,110,110); / 画矩形 dc.MoveTo ( 80,100 ); / 确
6、定起始点 dc.LineTo ( 200,200 ); / 画线的终点坐标 / CDialog:OnOK(); 4、保存并运行程序:运行程序单击“确定”,客户区显示信息。,11.4 对话框设计举例2-设计一个计算器程序,实现加、减、乘、除四则运算。,11.4 对话框设计举例2设计一个计算器程序,实现加、减、乘、除四则运算。 步骤一、创建一个对话框应用程序:1、在VC+集成环境中,选择文件File-新建New菜单项-工程Project-MFC AppWizard (exe)。2、Projiect Name文本框中输入项目名称和存储位置。3、在MFC AppWizard-Step1对话框中选择基于
7、对话框的应用程序(Dialogbased),语言支持选择简体中文。4、在AppWizard弹出的MFC AppWizardStep2对话框中,取消对About box的选择,单击“Finish”按钮完成项目的设定工作。,步骤二、设置控件及其属性Button1控件:ID属性-IDOK;Caption属性-退出。Button2控件:ID属性-ID_BUTTON2;Caption属性-计算。GroupBox控件(框架):ID属性-IDCSTATIC;Caption-选择运算符。Radio1(单选框):ID属性-ID_RADIO1;Caption-+; 选择Group复选框。Radio2:ID属性-I
8、D_RADIO2;Caption-。Radio3:ID属性-ID_RADIO3;Caption-*。Radio4:ID属性-ID_RADIO4;Caption-/。Edit1(编辑框):ID属性-IDEDIT1。Edit2:ID属性-ID_EDIT2。Edit3:ID属性-ID_EDIT3。Static1(静态文本框):ID属性ID_STATIC1;CaptiOn-+。Static2:ID属性-ID_STATlC2;CaptiOn - =。Check1:ID属性-ID_CHECK1; Caption - 立即计算注意:若4个单选框是一组,只能一个选Group复选框,否则各自独立。,步骤三、 定
9、义成员变量 如何在程序中协调和控制控件? 如何建立控件之间的联系? 程序如何得知用户对控件的操作并做出响应呢? 解决方法: 1、定义与控件相联系的变量,在程序中通过关联变量来完成对控件的控制。为控件定义变量的方法如下: “查看”-“建立类向导”-选择Member Variables选项卡-选择Controls IDS中控件ID-单击“Add Variable”按钮-利用对话框为控件建立相联系的成员变量。 注意:选择变量的类型。 2、为控件添加事件处理函数,将用户对控件的操作(如单击按钮、改变单选按钮的选择等)作为一个事件通知给程序,由程序的事件处理函数完成对用户操作的处理。,所增加的所有变量如
10、下:IDC_EDIT1:double-m_m1。 / 编辑框1 IDC_EDIT2:double-m_m2。 / 编辑框2 IDC_EDIT3:double-m_m3。 / 编辑框3IDC_RADIO1:int -m_dop。 / 单选框1IDC_STATIC1:CString-m_str。 / 静态文本框1IDC_CHECK1: BOOL-m_ft 。 / 复选框,步骤四、增加事件处理函数 查看建立类向导- 在Message Maps卡中选择: Project :本项目名 Class name:C本项目名 Dlg Object IDs:选择各控件的IDS选择相应的 Messages事件-选择
11、Add FunctionEdit Code事件处理函数如下:IDC_EDIT1:EN_CHANGE。IDC_EDIT2:EN_CHANGE。IDCRADlO1:BN_CLICKEDIDCRADlO2:BN_CLICKEDIDCRADlO3:BN_CLICKEDIDCRADlO4:BN_CLICKEDIDOK:BN_CLICKEDIDC_CHECK1: BN_CLICKED,说明: BN_CLlCKED事件:当鼠标单击按钮类控件(单选按钮等)触发。 BN_DOUBLECLICKED:当鼠标双击按钮类控件事件被触发; EN_CHANGE:编辑框的内容被改变,步骤五、添加代码实现相应功能。 计算按钮
12、:void CLtDlg:OnOK() UpdateData(true); /更新所有与对话框相关联的变量 switch(m_dop) case 0: /加法 m_m3=m_m1+m_m2; break; case 1: /减法 m_m3=m_m1-m_m2; break; case 2: / 乘法 m_m3=m_m1*m_m2; break; case 3: / 除法 m_m3=m_m1/m_m2; break; UpdateData(false); /更新与变量相关联的控件的显示状态,步骤五、添加代码实现相应功能。 编辑框1:void CLtDlg:OnChangeEdit1() Upda
13、teData(); if (m_ft ) OnOK(); 编辑框2: void CLtDlg:OnChangeEdit2() UpdateData(); if (m_ft ) OnOK(); 立即计算复选框:void CAaDlg:OnCheck1() UpdateData();if(m_ft) OnOK();,步骤五、添加代码实现相应功能。单选框1:+void CLtDlg:OnRadio1() UpdateData(true); m_str=+; UpdateData(false); 单选框2:-void CLtDlg:OnRadio2() UpdateData(true); m_str=
14、-; UpdateData(false);,步骤五、添加代码实现相应功能。单选框3:* void CLtDlg:OnRadio3() UpdateData(true); m_str= *; UpdateData(false);单选框4:/void CLtDlg:OnRadio2() UpdateData(true); m_str=/; UpdateData(false); 退出按钮:void CBbDlg:OnButton2() PostQuitMessage(0); / 关闭程序或退出程序,步骤六、运行程序保存程序编译程序运行程序注意:只有在改变了文本框中的数字时才能自动计算,而改变运算符类型不能自动进行运算。,下课了。,休息一会儿。,什么?,