收藏 分销(赏)

VC++对话框与常用控件PPT.ppt

上传人:快乐****生活 文档编号:10231570 上传时间:2025-04-28 格式:PPT 页数:35 大小:585KB
下载 相关 举报
VC++对话框与常用控件PPT.ppt_第1页
第1页 / 共35页
VC++对话框与常用控件PPT.ppt_第2页
第2页 / 共35页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第4章 对话框与常用控件,掌握,Button,、,Edit Box,和,Static Text,控件的创建和使用方法,掌握基于对话框的应用程序的编程技术,掌握模式对话框、非模式对话框和通用对话框的设计与调用,教学目标,Visual C+,程序设计电子教案-王明福编,1,教学内容,MyCalculator,程序 演示,开发,MyCalculator,程序,口令对话框,通用对话框,常用控件介绍,2,4.1,MyCalculator,程序,返回目录,程序运行结果,程序运行演示,3,4.2 开发,MyCalculator,程序,4.2.1,创建工程,4.2.2,可视化设计,4.2.3,为编辑框,IDC_DISPLAY,引入变量,4.2.4,为,CMyCalculatorDlg,类添加数据成员,4.2.5,为,BUTTON,按钮的,BN_CLICKED,事件添加响应函数,4.2.6,编写程序代码,4.2.7,技术要点,4.2.8,程序优化,返回目录,4,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,对话框。选择,“,Dialog based,”,单选按钮,创建一个基于对话框的应用程序;,(4),单击,“,Finish,”,按钮。此时,Visual c+6.0,将显示,NewProject Information,窗口;,(5),单击,“,OK,”,按钮。于是,,Visual C+6.0,就会创建,MyCalculator,工程以及相关的所有文件。,5,4.2.2,可视化设计,可视化设计,就用,VC+,自带的工具软件,Winzards,,制作计算器程序界面。即添加计算器中的数字、运算符等按钮和数字显示编辑框。,控件的两个要素:,ID,标识符和,Caption,文本,返 回,6,4.2.3,为编辑框,IDC_DISPLAY,引入变量,为了能够在程序运行过程中,,将输入的数据和计算的结果在编辑框上显示,必须为它引入一个变量,从而能够使编辑框以变量的形式出现在程序中。,利用函数,UpdateData(true),或,UpdateData(false),就可达到目的。,在,MFC ClassWizard,对话框中,选择,“,Member Variable,”,标签为,IDC_DISPLAY,编辑框引入变量,:,CString m_display;,返 回,7,4.2.4 为,CMyCalculatorDlg,类添加数据成员,为了实现计算器功能,我们需要向,CMyCalculatorDlg,类(即,MyCalculatorDlg.h,文件中)添加变量。变量属性和用途如下表。,数据类型,数据变量名称,数据的作用,double,m_first,存储一次运算的第一个数以及一次运算的结果,double,m_second,存储一次运算的第二个数,double,m_coff,存储小数点的系数权值,CString,m_operator,存储运算操作符,返 回,8,4.2.5,为,Button,按钮的,BN_CLICKED,事件添加响应函数,用,MFC ClassWizard,为对话框,IDD_MYCALCULATOR_DIALOG,中的所有,Button,按钮,的,BN_CLICKED,事件添加处理函数,,,如表4-3所示。,Object IDs,Messages,Member Functions,IDC_BUTTON1,BN_CLICKED,OnOnButton1(),IDC_BUTTON9,BN_CLICKED,OnOnButton9(),IDC_BUTTON_POINT,BN_CLICKED,OnButtonPoint(),IDC_BUTTON_SIGN,BN_CLICKED,OnButtonSign(),IDC_BUTTON_ADD,BN_CLICKED,OnButtonAdd(),IDC_BUTTON_MINUS,BN_CLICKED,OnButtonMinus(),IDC_BUTTON_MUTIPLY,BN_CLICKED,OnButtonMutiply(),返 回,9,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(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);/,更新编辑框的数据显示,完全类似,请读者为其它数字按钮的消息响应函数添加代码。,返 回,10,2.为运算符,(+、-、*、/),按钮的消息,响应,函数,添加代码,算法描述:,(1),m_first,与,m_second,作,m_operator,运算后,m_first;,(2)0,m_second;,(3)m_first,m_display(,显示),(4)用当前点击的运算符,m_operator;,(5),将小,数的权值变量,m_coff,置1.0复位。,以点击,“,+,”,运算符为例,在消息,响应,函数中编写如下代码。,void CMyCalculatorDlg:OnButtonAdd(),Calculate();,m_operator=+;,11,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_second;break;,case/:if(fabs(m_second)m_first,(5),将小,数的权值变量,m_coff,置1.0。,(6)输入的运算符,m_operator;,void CMyCalculatorDlg:OnButtonEqual(),Calculate();,m_first =0.0;m_operator=+;,14,4在,OnButtonSqrt(),函数中,编写代码,void CMyCalculatorDlg:OnButtonSqrt(),m_second=sqrt(m_second);,UpdateDisplay(m_second);,15,5.为,“,C,”,和,“,1/,X,”,按钮的消息响应函数编写代码,void CMyCalculatorDlg:OnButtonClear(),m_first=0.0;m_second=0.0;,m_operator=+;m_coff=1.0;,UpdateDisplay(0.0);,void CMyCalculatorDlg:OnButtonReciprocal(),if(fabs(m_second)Create(IDD_PASSWORD_DIALOG,this);,m_Dlg-ShowWindow(SW_SHOW);/,显示非模态对话框,对话框的调用,返 回,25,4.3.2,编辑口令对话框资源,1.创建对话框资源,参照第2章中,2.3.2节的方法,在,MyHello,工程中,新建一个,ID(,标识符)为,“,IDD_PASSWORD_DIALOG,”,、Caption,为,“,口令,”,的对话框资源,2编辑对话框资源,返 回,26,4.3.3,创建口令对话框类,返 回,为,IDD_PASSWORD_DIALOG,对话框创建一个新类。操作步骤如下:,(1)在,IDD_PASSWORD_DIALOG,对话框资源上单击鼠标右键,在弹出的快捷菜单中选择,Class Wizard(,或双击对话框,或通过菜单,View/Class Wizard),,弹出,MFC ClassWizard,对话框。在,MFC ClassWizard,对话框弹出后紧接着弹出,Adding Class,对话框。,(2)在,Adding Class,对话框中确认墨认选择,Create a new class,,单击,“,OK,”,按钮,弹出,New Class,对话框。,(3)在,Name,编辑框中输入新建类名,CPasswordDialog,,其它取墨认值。,27,4.3.4,为口令编辑框引入变量,返 回,为,IDC_PASSWORD_EDIT,编辑框引入变量的步骤如下:,(1),在,View,菜单中选择,ClassWizard,菜单项。,(2),在,MFC ClassWizard,对话框中,选择”,Member Variable,”,标签,作如下选择:,Class name:CPasswordDialog,Control IDs:IDC_PASSWORD_EDIT,(3),单击“,Add Variable,”,按钮,此时,,Visual C+6.0,将显示一个,Add Member Variable,对话框,设置如下:,Variable name:m_password,Category:Value,Variable type:Cstring,(4),单击,Add Member Variable,对话框的“,OK,”,按钮,返回到,MFC ClassWizard,对话框,再单击,MFC ClassWizard,对话框的“,OK,”,按钮。于是,,Visual C+6.0,就为,编辑框,IDC_PASSWORD_EDIT,引入变量,m_ password。,28,4.3.5,调用口令对话框,返 回,在应用程序类的,InitInstance(),函数中编写调用口令对话框代码。,1修改,InitInstance(),函数,BOOL CMyHelloApp:InitInstance(),m_pMainWnd-UpdateWindow();,CPasswordDialog Dlg;/,声明,CpasswordDialog,类的对象,if(Dlg.DoModal()!=IDOK)return false;,if(Dlg.m_password!=123456)/,口令设为字符串,123456,AfxMessageBox(,“,口令错误,);,return false;,return TRUE;,2,在,MyHello.cpp,的头部,加入下面的包含语句:,#,include PasswordDialog.h,29,4.3.6,显示非模式对话框,返 回,请读者按以下要求编辑一菜单:,ID:ID_NOMODALLESS;,Caption:,非模式对话框。,显示非模式对话框操作步骤如下:,1在视图类中添加对话框成员指针,class CMyHelloView:public Cview,public:,CPasswordDialog*m_pModallessDlg;,;,在,MyHelloView.h,中加入:,#,include PasswordDialog.h,30,返 回,2.修改视类的构造函数和析构函数,分别在视类的构造函数和析构函数中添加如下代码:,CMyHelloView:CMyHelloView(),m_pModallessDlg=NULL;/,初始化指针,CMyHelloView:CMyHelloView(),if(m_pModallessDlg!=NULL),delete m_pModallessDlg;/,释放空间,31,返 回,3编写调用非模式对话框代码,(1)利用,MFC ClassWizard,,为菜单,ID_NOMODALLESS,添加了消息响应函数,OnNomodalless()。,(2)定位在,OnNomodalless(),函数,编写如下,显示非模式对话框代码:,void CMyHelloView:OnNomodalless(),if(m_pModallessDlg=NULL,m_pModallessDlg=new CPasswordDialog;,m_pModallessDlg-Create(IDD_PASSWORD_DIALOG,this);,m_pModallessDlg-ShowWindow(SW_SHOW);,32,4.4,通用对话框,在应用程序设计中,除使用自定义的对话框之外,经常用到系统定义的通用对话框类。通用对话框类用于各种,Windows,常用应用程序中,执行各种标准操作。它们由,CDialog,类派生而来,其资源全部包含在,WindowsSYSTEM,目录下的,COMMDLG.DLL,动态链接库中。常用的通用对话框类有:,CFileDialog,文件对话框类;,CFontDialog,字体对话框类;,CColorDialog,颜色,对话框类;,CPrintDialog,打印对话框类。,返 回,33,4.4.1 CFileDialog,类的使用方法,(1),构造,CFileDialog,类的对象;,(2),调用成员函数,DoModal,调用对话框;,(3),应用程序可通过,CFileDialog,类的成员函数获得各种信息。,例如,调用图4-21所示的通用文件对话框的关键代码如下:,CString strFilter=Dat Files(*.dat)|*.dat|All Files(*.*)|*.*|;,CFileDialog FileDlg(true,NULL,NULL,OFN_HIDEREADONLY,|OFN_OVERWRITEPROMPT,(LPCSTR)strFilter,this);,if(FileDlg.DoModal()!=IDOK)return;,CString strFileName=FileDlg.GetPathName();,/,打开文件,strFileName,返 回,34,4.5,常用控件介绍,4.5.1 Button,控件,1.Button,控件的消息,Button,控件是对话框中最基本的,控件。当被按下时,它将发送一条消息给对话框,对话框类可以建功立自己的消息循环并且编写相应的消息响应,函,数。这是一种最简单的使用,Button,控件方法。,2.Button,控件类的成员函数,Button,控件与,CButton,类相关联。可以通过,CButton,类的成员涵数对,Button,控件进行设置。,例如,设与,ID,是,IDC_BUTTON_OK,的按钮相关联的对象为:,m_button_ok,则,m_button_ok.EnableWindow(FALSE);,使的按钮变恢(禁止)。而,m_button_ok.SetState(1);,使的按钮高亮。,返 回,35,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服