书签 分享 收藏 举报 版权申诉 / 23
上传文档赚钱

类型《Visual C++程序设计及实践》课件第8章MFC对话框.ppt

  • 上传人(卖家):momomo
  • 文档编号:7904175
  • 上传时间:2024-09-03
  • 格式:PPT
  • 页数:23
  • 大小:445.13KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《Visual C++程序设计及实践》课件第8章MFC对话框.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Visual C+程序设计及实践 Visual C+程序设计及实践课件第8章 MFC对话框 Visual C+ 程序设计 实践 课件 MFC 对话框
    资源描述:

    1、-1-本章目标 掌握模态对话框和非模态对话框的创建方法 熟悉常用的标准控件 掌握对话框控件的静态创建方法 了解对话框控件的动态创建方法 掌握对话框控件成员变量的添加方法 掌握对话框数据交换与验证的使用 掌握对话框控件通知消息的处理对话框基础知识 对话框是Windows应用程序中的一个很重要的用户接口,其作用是接收用户的数据输入或显示数据给用户。对话框也是一个窗口,它不仅可以接收消息,而且还可以被移动和关闭,甚至可以在它的客户区进行绘图。对话框可以被看成是一个大容器,其上能够放置各种各样的控件,以支持用户数据输入和数据显示。-2-对话框基础知识对话框种类模态对话框非模态对话框-3-对话框基础知识

    2、CDialog类 在MFC中,应用程序使用对话框时,一般需要定义一个CDialog的派生类,并与对话框模板资源相连接。CDialog类继承自CWnd类,负责对话框的创建、显示和管理工作。-4-对话框基础知识CDialog类 CDialog类主要的成员函数及功能类别类别成员函数成员函数函数说明函数说明创建Create()创建非模态对话框,若要显示,必须调用CWnd:ShowWindow()DoModal()显示模态对话框关闭EndDialog()关闭模态对话框(隐藏而不销毁)。如要关闭非模态对话框,需要调用CWnd:DestroyWindow()操作NextDlgCtrl()将焦点移至对话框中的

    3、下一个控件PrevDlgCtrl()将焦点移至对话框中的上一个控件SetDefID()设置对话框默认按钮控件GetDefID()获取对话框默认按钮控件的IDGotoDlgCtrl()将焦点移至对话框中指定的控件虚函数OnInitDialog()初始化对话框函数,对话框显示时,被框架自动调用OnOk()可以派生类中覆盖此函数实现模态对话框中的“OK”按钮动作,默认是关闭对话框。OnCancel()可以在派生类中覆盖此函数实现模态对话框中的“Cancel”按钮或“ESC”键动作,默认是关闭对话框。-5-对话框创建和显示创建对话框模板资源添加对话框资源修改对话框属性-6-对话框创建和显示创建对话框模

    4、板资源工具箱在对话框中添加控件-7-对话框创建和显示创建对话框模板资源添加对话框类-8-对话框创建和显示模态对话框 模态对话框的创建和关闭需要经过以下步骤:使用对话框类实例化对象;调用DoMoal()成员函数创建和显示模态对话框;点击“确定”或“取消”按钮,或者在对话框类内部调用EndDialog()、OnOk()、OnCncel()函数关闭对话框。-9-对话框创建和显示非模态对话框 非模态对话框的创建和关闭需要经过以下步骤:使用new运算符在堆上动态构造对话框对象;调用Create()成员函数创建对话框;调用ShowWindow()成员函数显示对话框;调用DestroyWindow()成员函

    5、数销毁对话框;使用delete运算符释放堆内存。-10-对话框创建和显示基于对话框的应用程序-11-标准控件与对话框标准控件简介MFC类类控件控件描述描述CButton按钮用来产生某种行为,包括复选框、单选按钮等CEdit编辑框用于键入文本CListBox列表框包括一系列字符串的列表CComboBox组合框编辑框和列表框的组合CListCtrl列表视图显示文本及其图标类表的窗口CProgressCtrl进度条用于在一较长操作中提示用户所完成的进度CScrollBar滚动条为窗体提供控件形式的滚动操作CSliderCtrl滑块包括一个可选标记的滑块的窗口CSpinButtonCtrl旋转按钮提供

    6、一对可用于增减某个值的箭头CStatic静态文本常用于为其他控件提供标签CTabCtrl选项卡在选项卡对话框或属性页中提供具有分隔标签外观的选项卡CTreeCtrl树形视图按树形显示一系列数据的窗口CMonthCalCtrl日历控件提供一个类似月历的控件接口,通过此接口可输入或选择一个日期CIPAddressCttrlIP地址控件与编辑控件相似,运行用户输入并管理IP格式的数字化地址-12-标准控件与对话框对话框控件的创建 给对话框创建控件有两种方法:p 静态创建,在VS2010内使用对话框编辑器的控件“工具箱”,将控件直接拖到对话框上,而后就可以设置控件的属性(如前述例子)。这是最常用的方法

    7、。p 动态创建,即使用控件类创建控件对象,然后调用控件类的成员函数Create()完成控件的创建。而控件的属性和显示位置则只能通过调用控件类的成员函数来实现。-13-标准控件与对话框对话框控件成员变量 在对话框上布置好控件后,要使对话框能与程序通讯,需要给对话框类添加数据成员,以保存各控件的初始值,并可以从控件读取数据。与控件对应的数据成员有两种类型:p 变量型成员(Value),控件成员变量的类型可以是任何数据类型,用于控件初始化或保存控件值。p 控件型成员(Control),控件成员变量的类型是相应控件类,以调用控件类的成员函数来操作控件。-14-标准控件与对话框访问对话框控件 访问控件有

    8、多种方式:p 使用函数GetDlgItem(.)。p 使用GetDlgItemText()/SetDlgItemText()。p 将控件和值变量相关联。p 将控件和控件变量相关联。p 使用SendMessage()函数。p 使用SendDlgItemMessage()函数。-15-void CRegDlg:OnBnClickedOk()/*1、访问对话框控件*/char chPhone30;memset(chPhone,0,sizeof(chPhone);GetDlgItem(IDC_ED_PHONE)-GetWindowTextW(LPTSTR)chPhone,20);GetDlgItem(

    9、IDC_ED_PHONE2)-SetWindowTextW(LPTSTR)chPhone);void CRegDlg:OnBnClickedOk()/OnOK();char chPhone30;memset(chPhone,0,sizeof(chPhone);/*2、访问对话框控件*/GetDlgItemText(IDC_ED_PHONE,(LPTSTR)chPhone,20);SetDlgItemText(IDC_ED_PHONE2,(LPTSTR)chPhone);-16-char chPhone30;memset(chPhone,0,sizeof(chPhone);edPhone.Get

    10、WindowTextW(LPTSTR)chPhone,20);edPhone2.SetWindowTextW(LPTSTR)chPhone);class CRegDlg:public CDialogchar phone30;/此处是向导添加的变量;GetDlgItemText(IDC_ED_PHONE,(LPTSTR)phone,20);SetDlgItemText(IDC_ED_PHONE2,(LPTSTR)phone);-17-char chPhone30;memset(chPhone,0,sizeof(chPhone);edPhone.SendMessage(WM_GETTEXT,20,

    11、(LPARAM)chPhone);edPhone2.SendMessage(WM_SETTEXT,0,(LPARAM)chPhone);char chPhone30;memset(chPhone,0,sizeof(chPhone);:SendDlgItemMessage(this-m_hWnd,IDC_ED_PHONE,WM_GETTEXT,20,(LPARAM)chPhone);:SendDlgItemMessage(this-m_hWnd,IDC_ED_PHONE2,WM_SETTEXT,0,(LPARAM)chPhone);-18-标准控件与对话框对话框数据交换与验证 数据交换:p 在对

    12、话框类中,MFC自动添加了DoDataExchange()函数,在其中实现对话框控件数据的交换和验证机制。void CRegDlg:DoDataExchange(CDataExchange*pDX)CDialog:DoDataExchange(pDX);DDX_Text(pDX,IDC_ED_USERNAME,m_edUserName);DDX_Text(pDX,IDC_ED_PHONE,m_edPhone);DDX_Text(pDX,IDC_ED_EMAIL,m_edEmail);-19-标准控件与对话框对话框数据交换与验证 数据验证:p 可以设定控件的输入值在某个范围,程序运行时若用户为控

    13、件输入的值不在设定的范围就自动给予警告或禁止输入。void CRegDlg:DoDataExchange(CDataExchange*pDX)CDialog:DoDataExchange(pDX);.DDV_MaxChars(pDX,m_edUserName,8);-20-标准控件与对话框对话框控件通知消息 常用控件通知消息:控件控件通知消息通知消息描述描述CButtonBN_CLICKED用户单击了按钮CEditEN_CHANGE用户改变了文本CListBoxLBN_DBLCLK用户在控件内双击了鼠标左键CComboBoxCBN_EDITCHANGE用户更改了编辑控件中的文本CBN_SELC

    14、HANGE控件中的选定内容已更改-21-小结对话框是Windows应用程序中非常重要的用户界面元素,对话框通过其上的各种控件和用户进行交互使用对话框时需要定义一个CDialog派生类,并与资源相连接Windows有两种对话框:模态对话框和非模态对话框模态对话框工作时,会导致其父窗口类无效,直到对话框结束非模态对话框在打开期间,允许用户切换到程序其他部分,不一定要关闭对话框模态对话框经常用于程序设置等场合,非模态对话框用于“查找”或“替换”等场合MFC提供了基于对话框(Dialog based)的应用程序框架,对话框就是程序框架,负责数据输入和输出以及消息处理控件有两种创建方法:在资源内静态创建、用代码动态创建与控件对应的对话框数据成员可以方便的实现对话框与程序通讯与控件对应的对话框数据成员有两种类型:变量型成员和控件型成员对话框类的DoDataExchange()函数实现对话框数据的交换和验证机制当程序需要交换数据时,通过调用CWnd:UpdateData()函数来调用DoDataExchange()函数控件将事件消息发往父窗体(对话框),在对话框类内可以处理它们谢 谢 Thanks for listening.

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《Visual C++程序设计及实践》课件第8章MFC对话框.ppt
    链接地址:https://www.163wenku.com/p-7904175.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库