VC对话框与常用控件.ppt
《VC对话框与常用控件.ppt》由会员分享,可在线阅读,更多相关《VC对话框与常用控件.ppt(35页珍藏版)》请在三一文库上搜索。
1、第4章 对话框与常用控件,掌握Button、Edit Box和Static Text控件的创建和使用方法 掌握基于对话框的应用程序的编程技术 掌握模式对话框、非模式对话框和通用对话框的设计与调用,教学目标,Visual C+程序设计电子教案-王明福编,教学内容,MyCalculator程序 演示 开发MyCalculator程序 口令对话框 通用对话框 常用控件介绍,4.1 MyCalculator程序,返回目录,程序运行结果,程序运行演示,4.2 开发MyCalculator程序,4.2.1 创建工程 4.2.2 可视化设计 4.2.3 为编辑框IDC_DISPLAY引入变量 4.2.4 为
2、CMyCalculatorDlg类添加数据成员 4.2.5 为BUTTON按钮的BN_CLICKED事件添加响应函数 4.2.6 编写程序代码 4.2.7 技术要点 4.2.8 程序优化,返回目录,4.2.1 创建工程,返 回,创建MyCalculator工程的步骤: (1) 启动Visual C+6.0。从“File”菜单中选择“New” ; (2) 在New对话框中选择“Project”标签 ,然后指定工程类型MFC AppWizardexe、工程名MyCalculator和工程位置D:MyVC; (3) 点击“OK”按钮,弹出MFC AppWizard-Step 1对话框。选择“Dial
3、og based”单选按钮,创建一个基于对话框的应用程序; (4) 单击“Finish” 按钮。此时Visual c+6.0将显示NewProject Information窗口; (5) 单击“OK” 按钮。于是,Visual C+6.0就会创建MyCalculator工程以及相关的所有文件。,4.2.2 可视化设计,可视化设计,就用VC+自带的工具软件Winzards,制作计算器程序界面。即添加计算器中的数字、运算符等按钮和数字显示编辑框。 控件的两个要素:ID标识符和Caption文本,返 回,4.2.3 为编辑框IDC_DISPLAY引入变量,为了能够在程序运行过程中,将输入的数据和计
4、算的结果在编辑框上显示,必须为它引入一个变量,从而能够使编辑框以变量的形式出现在程序中。利用函数UpdateData(true)或UpdateData(false)就可达到目的。 在MFC ClassWizard对话框中,选择“Member Variable”标签为IDC_DISPLAY编辑框引入变量:CString m_display;,返 回,4.2.4 为CMyCalculatorDlg类添加数据成员,为了实现计算器功能,我们需要向CMyCalculatorDlg类(即MyCalculatorDlg.h文件中)添加变量。变量属性和用途如下表。,返 回,4.2.5 为Button按钮的BN
5、_CLICKED事件添加响应函数,用MFC ClassWizard为对话框IDD_MYCALCULATOR_DIALOG中的所有Button按钮的BN_CLICKED事件添加处理函数,如表4-3所示。,返 回,4.2.6 编写程序代码,1. 为数字“N”按钮的消息响应函数添加代码。算法设计如下: (1) 作为整数输入数字N时(N =0,9): m_second=m_second*10+N; (2) 作为小数输入数字N时(N =0,9): m_second=m_second+N*m_coff; m_coff *= 0.1; void CMyCalculatorDlg:OnButton8() if
6、( m_coff = 1.0)/ 作为整数输入 m_second = m_second*10 + 8; else /作为小数输入 m_second = m_second + 8*m_coff; m_coff *= 0.1; UpdateDisplay(m_second);/更新编辑框的数据显示 完全类似,请读者为其它数字按钮的消息响应函数添加代码。,返 回,2. 为运算符(+、-、*、/)按钮的消息响应函数添加代码,算法描述: (1)m_first与 m_second作m_operator运算后m_first; (2)0m_second; (3)m_first m_display (显示) (
7、4)用当前点击的运算符 m_operator; (5)将小数的权值变量m_coff置1.0复位。 以点击“+”运算符为例,在消息响应函数中编写如下代码。 void CMyCalculatorDlg:OnButtonAdd() Calculate(); m_operator=“+“; ,void CMyCalculatorDlg:Calculate(void) switch(m_operator.GetAt(0) case +: m_first +=m_second;break; case -: m_first -=m_second;break; case *: m_first *=m_seco
8、nd;break; case /: if(fabs(m_second)= 0.000001) m_display = “除数不能为零“; UpdateData(false); return; m_first /=m_second;break; m_second=0.0; m_coff = 1.0; UpdateDisplay(m_first);/更新编辑框的显示内容 ,void CMyCalculatorDlg:UpdateDisplay(double lVal) m_display.Format( _T(“%f“),lVal); int i=m_display.GetLength(); /格
9、式化输出,将输出结果后的零全部截去 while(m_display.GetAt(i-1)=0) m_display.Delete(i-1,1);i-; UpdateData(false); /更新显示编辑框变量m_display 其它运算类似,留给读者自已完成。,3为等号“=”按钮消息响应函数添加代码,算法设计: (1)m_first与 m_second作m_operator运算后m_first; (2)m_first m_display (显示) (3)0m_second; (4)0=m_first (5)将小数的权值变量m_coff置1.0。 (6)输入的运算符 m_operator; v
10、oid CMyCalculatorDlg:OnButtonEqual() Calculate(); m_first = 0.0; m_operator=“+“; ,4在OnButtonSqrt()函数中,编写代码,void CMyCalculatorDlg:OnButtonSqrt() m_second = sqrt(m_second); UpdateDisplay(m_second); ,5. 为“C”和“1/X”按钮的消息响应函数编写代码,void CMyCalculatorDlg:OnButtonClear() m_first=0.0; m_second=0.0; m_operator
11、= “+“; m_coff = 1.0; UpdateDisplay(0.0); void CMyCalculatorDlg:OnButtonReciprocal() if(fabs(m_second)0.000001) m_display = “除数不能为零“; UpdateData(false); return; m_second= 1.0/m_second; UpdateDisplay(m_second); ,6. 为“+/-”“.”按钮的消息响应函数编写代码,/ “.”按钮的消息响应函数 void CMyCalculatorDlg:OnButtonPoint() m_coff = 0.
12、1 ; / “+/-”按钮的消息响应函数 void CMyCalculatorDlg:OnButtonSign() m_second = -m_second; UpdateDisplay(m_second); ,返 回,4.2.7 技术要点UpdateData函数, UpdateData函数是CDialog的基类CWnd的成员函数; 函数原型如下: BOOL UpdateData( BOOL bSaveAndValidate = TRUE ); 一般在对话框的派生类中,利用UpdateData函数进行控件和相应变量之间的数据传递,形式如下: UpdateData(TRUE); /将控件中的数据
13、传递给相应的变量 UpdateData(FALSE) /将变量中的数据传递给相应的控件,即显示,返 回,4.2.7 技术要点关于消息响应函数,用MFC ClassWizard为对话框中某按钮的BN_CLICKED事件添加消息处理函数时,MFC ClassWizard为我们做了三件事: (1) 在类的定义MyCalculatorDlg.h文件中,添加了消息响应函数的函数原型; (2) 在类的实现文件MyCalculatorDlg.cpp中,添加了函数体; (3) 在类的实现文件MyCalculatorDlg.cpp中,添加了消息映射。 所以,如果想删除通过ClassWizard创建的消息响应函数
14、,在MFC ClassWizard对话框中,选中要删除的函数,单击“Delete function”按钮将函数删除。但是源文件中相应的函数体并没有删除,需要手工方法将函数体删除。,4.2.7 技术要点字符串CString类,CString类的对象由一个长度可变的字符序列组成,包含很多成员函数用来操作字符串,可以很方便地实现对字符串的各种操作。CString类中的字符是TCHAR类型的。 (1) 构造函数 CString();/产生一个空的CString对象 CString(const CString/ 从一个ANSI字符串初始化对象,返 回,4.2.8 优化MyCalculator程序,ON_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 对话框 常用 控件
链接地址:https://www.31doc.com/p-2090482.html