对话框创建和使用_第1页
对话框创建和使用_第2页
对话框创建和使用_第3页
对话框创建和使用_第4页
对话框创建和使用_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

对话框创建和使用概念和分类创建和调用通用对话框概念和分类概念最重要界面元素之一,是与用户交互的重要手段。对话框可用于捕捉用户的输入信息或数据,进行数据更新,计算和显示。实例:计算器,音乐播放器,...分类两种类型:模式,无模式模式对话框在退出对话框之前,对话框所在应用程序的其它操作不能继续执行。常见大多数对话框都是模式对话框。无模式对话框指当对话框被弹出后,一直保留在屏幕上,用户可继续在对话框所在的应用程序中进行其它操作;当需要使用对话框时,只需象激活一般窗口一样单击对话框所在的区域即可激活。创建和调用创建对话框*创建和编辑对话框;*创建和编辑对话框类;*调用对话框;建立和使用对话框步骤1.创建对话框和控件,编辑它们的属性2.创建对话框类CFirstDlg在对话框资源模板的空白区域(没有其他元素或控件)内双击鼠标,将弹出对话框,询问是否为对话框资源创建一个新类。单击[OK]按钮,将弹出NewClass对话框。在Name框中输入类名CFirstDlg。Baseclass和DialogID内容是由系统自动设置的,一般无需修改。即创建的对话框类默认是从基类CDialog派生而来的。单击[OK]按钮;创建和调用3.调用对话框建立新的菜单项,在视类菜单项消息响应函数中,添加调用代码有模式方法CFirstDlgdlg; //定义对话框类对象dlg.DoModal(); //显示对话框无模式方法Cxx*dlg=newCxx();dlg->Create(IDD_DIALOG1);dlg->ShowWindow(SW_NORMAL);无论哪种方式,都需在实现文件前部添加相应对话框定义文件,即:#include"FirstDlg.h"注意:观察上述对话框退出之前,用户对该应用程序能否执行其它操作?在应用程序菜单上,多次选择菜单项,将会在同一个位置中出现多个对话框。创建和使用对话框步骤1.创建对话框和控件,编辑它们的属性;2.生成对话框类,并可添加其成员变量和编辑成员函数;3.调用对话框调用对话框两个步骤:1)添加包含头文件语句在相应类的实现文件中,添加包含对话框类定义的头文件语句如创建和调用创建和调用include"PWDialog.h"2)在程序中调用对话框可采用模式和无模式两种方法。如,模式方法:CMyFirstDlgdlg;dlg.DoModal();或CMyFirstDlgdlg;if(dlg.DoModal()==IDOK){…}创建和调用创建和调用创建和调用

4.编译运行例创建并使用无模式对话框步骤:(1)创建单文档应用程序中,在该项目中添加一个对话框资源,将其标识符设为IDD_DIALOG_SECOND,标题设为“无模式对话框”,对话框字体和大小设为“宋体,9号”。(2)为IDD_DIALOG_SECOND对话框资源创建一个对话框类CSecondDlg。(3)打开MFCClassWizard,从“Classname”列表中选择CSecondDlg,在IDs列表中选择IDOK,它是对话框中[OK]按钮的标识符,然后在Messages框中选择BN_CLICKED(单击按钮)消息,单击[AddFunction]按钮或双击BN_CLICKED消息,出现“AddMemberFunction”对话框以输入成员函数的名称,保留系统默认的函数名为OnOK。

创建和调用

(4)修改CSecondDlg::OnOK函数中的代码。voidCSecondDlg::OnOK(){DestroyWindow();//终止对话框显示deletethis;//删除对话框,释放内存空间}代码中,DestroyWindow是对话框基类CWnd的一个成员函数,用来终止窗口。创建和调用创建和调用(6)在文件MainFrm.cpp的前面添加CSecondDlg类的包含语句,即:#include"FirstDlg.h"#include"SecondDlg.h"(7)编译并运行。观察在应用程序菜单上,多次选择“测试”→“对话框”菜单项,是否能出现多个对话框。创建和调用

练习用模式或无模式对话框实现一个简单计算器对话框程序为计算器对话框中按钮IDC_COMPUTE增加了消息响应函数。其成员函数参考代码:voidCDLGDialog::OnCompute(){UpdateData(TRUE);switch(m_nOpr){case0:m_d3=m_d1+m_d2;break;case1:m_d3=m_d1-m_d2;break;case2:m_d3=m_d1*m_d2;break;创建和调用

case3:if(m_d2!=0.0){m_d3=m_d1/m_d2;}else{AfxMessageBox("除数为零!");m_d3=0.0L;}break;default:TRACE("defaultm_nOpr=%d\n",m_nOpr);}UpdateData(FALSE);}注释:UpdateData函数使用方法:UpdateData(TRUE)---将编辑框中的数据读取到成员变量;UpdateDate(FALSE)---将成员变量的数值传递到编辑中框显示通用对话框Windows提供了一组标准用户界面对话框,它们都有相应的MFC库中的类来支持。所有这些通用对话框类都是从一个公共的基类CCommonDialog派生而来。通过相应函数,调用对话框。通用对话框:*消息对话框;*文档对话框;*字体对话框;…通用对话框消息对话框最简单的一类对话框,它只是用来显示信息的。在MFC类库中就提供相应的函数,可直接在程序中调用。在使用消息对话框时,图标类型和按钮类型的标识可使用“|”来组合,例如MessageBox(“继续进行该操作吗?”,“提示",MB_YESNOCANCEL|MB_ICONWARNING);两个函数原型如下:intAfxMessageBox(LPCTSTRlpszText,UINTnType=MB_OK,UINTnIDHelp=0);intMessageBox(LPCTSTRlpszText,LPCTSTRlpszCaption=NULL,UINTnType=MB_OK);通用对话框

这两个函数都是用来创建和显示消息对话框的;AfxMessageBox是全程函数,可以用在任何地方。而这里的MessageBox只能在对话框、窗口和控件等一些窗口类中使用。它们都是MFC函数,但与前面使用的MessageBox不同(前面使用的MessageBox,是包含4个参数的API函数)intnChoice=MessageBox("你喜欢VisualC++吗?","提问", MB_OKCANCEL|MB_ICONQUESTION);if(nChoice==IDYES){ //... }通用对话框文件对话框文件对话框类CC构造函数的原型:C(BOOLbOpen,LPCTSTRlpszDefExt=NULL,LPCTSTRlpsz=NULL,DWORDdwFlags=OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,LPCTSTRlpszFilter=NULL,CWnd*pParentWnd=NULL);C构造函数参数说明:bOpen当bOpen为TRUE时表示文件打开对话框,为FALSE时表示文件保存对话框。lpszDefExt用来指定文件扩展名。若用户在文件名编辑框中没有键入扩展名,则系统在文件名后自动添加lpszDefExt指定的扩展名。通用对话框

lpsz用来在文件名编辑框中指定开始出现的文件名,若为NULL时,则不出现。dwFlags用来指定对话框的界面标志当为OFN_HIDEREADONLY时表示隐藏对话框中的“只读”复选框,当为OFN_OVER-WRITEPROMPT时表示文件保存时,若有指定的文件有重名,则出现提示对话框。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论