资源描述:
《第06章 对话框》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章对话框6.1对话框的基本概念6.2消息框6.3创建一个基于对话框的应用程序6.1对话框的基本概念对话框是一种用户界面,它的主要功能是输出信息和接收用户的输入,对话框与控件是密不可分的,在每个对话框内一般都有一些控件,对话框依靠这些控件与用户进行交互。一个对话框由如下两部分组成:(1)对话框模板资源。对话框模板用于指定对话框的控件及其分布,Windows根据对话框模板来创建对话框。(2)对话框类。对话框类用来实现对话框的功能,由于对话框行使的功能各不相同,因此一般需要从CDialog类派生一个新类,以完成特定的功能。3.一
2、个对话框的设计就包括对话框模板的设计和对话框类的设计两个主要方面。4.对话框的创建时会收到WM_INITDIALOG消息,对话框对该消息的处理函数是OnInitDialog()用于初始化对话框6.1对话框的基本概念通用对话框和消息对话框Windows提供了一组标准用户界面对话框,它们都有相应的MFC库中的类来支持。所有这些通用对话框类都是从一个公共的基类CCommonDialog派生而来。表列出了这些通用对话框。6.2最简单的对话框——消息框6.2.1消息框的基本概念消息框向用户传递一个消息文本(如任务完成,出现错误等),并提
3、供按钮或者按钮组合供用户选择。1,MessageBox():intMessageBox(LPCTSTRlpszText,LPCTSTRlpszCaption=NULL,UINTnType=MB_OK);用来创建消息框的一个定制函数,它最多可以传递三个参数,第一个参数是要显示给用户的消息文本;第二个参数是用来显示在消息框中的标题栏,是可选;第三个参数用来指定将显示给用户的按钮或图标,也是可选的;如果使用了第三个参数则第二个参数将是必选的。函数MessageBox()将返回一个结果值,用来指示用户单击了哪个按钮,不同的按钮有着不同
4、的返回值,例如确定按钮对应:IDYES。2,intAfxMessageBox(LPCTSTRlpszText,UINTnType=MB_OK,UINTnIDHelp=0);Afx开头的都是全局函数,也就是说AfxMessageBox可以用于任何程序;而MessageBox只能用在CWnd及其派生类中。MessageBox可以任意设置标题,而AfxMessageBox不能。Windows基本数据类型6.2最简单的对话框——消息框MessageBox()不同的图标参数:信息:MB_ICONINFORMATION停止号:MB_ICO
5、NSTOP问号:MB_ICONQUESTION惊叹号:MB_ICONEXCLAMATIONMessageBox()的按钮风格组合参数:MB_ABORTRETRYIGNOREAbort,Retry,IgnoreMB_OKOKMB_OKCANCELOK,CancelMB_RETRYCANCELRetry,CancelMB_YESNOYes,NoMB_YESNOCANCELYes,No,Cancel6.2最简单的对话框——消息框6.2.2创建一个消息实例:课本83页voidCExmessDlg::OnShow(){//TODO:Ad
6、dyourcontrolnotificationhandlercodehereintnbutton;nbutton=MessageBox("Isthiswhatyouwanttosee","InformationBox",MB_YESNOCANCEL
7、MB_ICONQUESTION);switch(nbutton){caseIDOK:m_stranswer="yes,itis!";break;caseIDNO:m_stranswer="no,itisn't!";break;caseIDCANCEL:m_stranswer="I
8、amsorry,Idon'tknowhowtoanswerit!";}UpdateData(FALSE);}5.3创建一个基于对话框的应用程序目的:1.熟悉前面一章所讲的常用控件2.熟悉基于对话框的应用程序的一般开发步骤,以及对话框应用程序中常用的函数5.3创建一个基于对话框的应用程序本程序中用到的对话框常用函数:AddString(LPCTSTR):CComboBox::AddStringintAddString(LPCTSTRlpszString);说明:本函数在组合框中的列表框中添加一个字符串参数:lpszStrin
9、g指向将要添加的字符串(以null结尾)的指针;SetCurSel():ComboBox::SetCurSelintSetCurSel(intnSelect)说明:本函数在组合框的列表框中选择一个字符串。必要时列表框会滚动,以使该字符串在列表的可视区内(列表是可见的时)。