问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

对话框组成员素有哪些组成?其功能如何?

发布网友 发布时间:2022-04-30 05:49

我来回答

2个回答

热心网友 时间:2023-10-18 14:34

EWR5ET

热心网友 时间:2023-10-18 14:34

EWR5ET

热心网友 时间:2023-10-18 14:34

对话框  一种次要窗口,包含按钮和各种选项,通过它们可以完成特定命令或任务。
  对话框与窗口有区别,它没有最大化按钮、没有最小化按钮、不能改变形状大小
  对话框:是人机交流的一种方式,用户对对话框进行设置,计算机就会执行相应的命令。对话框中有单选框、复选框等。
  对话框的组成
  对话框主要由两部分组成。
  对话框资源:可以使用对话框编辑器来配置对话框的界面,如对话框的大小、位置、样式,对话框中控件的类型和位置等。另外,我们还可以在程序的执行过程中动态创建对话框资源。
  对话框类:在MFC程序中,可以使用向导帮助用户建立一个与对话框资源相关联的类,通常这个类由CDialog类派生。
  对话框的类型
  对话框可以分为模式对话框和无模式对话框两种类型。
  CDialog
  为了能够方便的操作对话框,MFC为用户提供了CDialog类。它是在屏幕上显示对话框的基类,与对话框资源紧密相关,提供了管理对话框的接口,封装了一些对话框的相关操作。
  从CDialog的定义代码可以看出,Cdialog提供了两套构建Cdialog对象的系统,分别用于模式对话框和无模式对话框。
  无模式对话框对象的构建过程,它首先调用缺省的构造函数生成对话框对象,然后调用Create函数创建和初始化对话框。Cdialog类中的Create函数有两种函数原型:
  BOOL Create( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL );
  BOOL Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );
  其中,
  参数lpszTemplateName是无模式对话框模板资源的标志符;
  参数nIDTemplat是对话框模板资源的标志符,它通常以IDD_开头(例如IDD_DIALOG1);
  参数pParentWnd是指向对话框对象所属的父窗口的指针(如果它为NULL,则表示对话框对象的父窗口是应用程序主窗口)。如果希望对话框中它的父窗口创建后马上被显示,就必须把对话框模板设置为WS_VISIBLE形式。否则,需要调用ShowWindow函数来显示对话框。
  对于模式对话框,其构造函数如下所示:
  CDialog( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL );
  CDialog( UINT nIDTemplate, CWnd* pParentWnd = NULL );
  构造函数的参数说明与无模式对话框的Create函数类似。在模式对话框中,当创建了对话框对象后,可以通过调用DoModal函数来显示对话框。
  一般情况下,无论是模式对话框还是无模式对话框,都有两个按钮OK和CANCEL。对话框为它们提供了默认的消息处理函数OnOk和OnCancel。调用这两个函数都将关闭对话框。所不同的是,默认的OnOk函数中关闭对话框前将更新对话框数据,而默认的OnCancel函数不更新对话框数据。
  当CDialog类检测到OK或Cancel键时,它将调用::EndDialog函数。EndDialog函数虽然结束了对话框应用程序,但却并没有删除对话框对象,释放内存。这对于模式对话框来说,不是问题,它的生存时间不长,我们一般在栈上创建它们;但无模式对话框则不同,它的生存时间更长,我们通常在栈上创建它们,并且希望它在消失之前能够删除自己。因此,大多数情况下,我们需要在无模式对话框中重载OnOK和OnCancel函数,加入DestroyWindows函数来彻底地删除它。
  对话框数据交换和验证机制
  在VC中,所有的对话框函数都是使用C++代码实现的,它并没有采用特殊的资源或“奇特”的宏,但却可以很好地实现用户与应用程序之间的交互工作,这里的关键就在于对话框应用程序中广泛采用的对话框数据交换和验证机制。
  对话框数据交换(DDX,Dialog Data Exchange)用于初始化对话框中的控件并获取用户的数据输入,而对话框数据验证(DDV,Dialog Data Validation)则用于验证对话框中数据输入的有效性。MFC在每个对话框类中提供了一个用于重载的虚函数——DoDataExchange来实现对话框数据交换和验证工作。
  对话框数据交换
  如果使用DDX机制,则通常在OnInitDialog程序或对话框构造函数中设置对话框对象成员变量的初始值。在对话框即将显示前,应用程序框架的DDX机制将成员变量的值传递给对话框的控件,当对话框响应DoModal或Create而被显示时,对话框控件将“显示”这些值。Cdialog类中的OnInitDialog函数默认时将调用CWnd类的UpdateData成员函数初始化对话框中的控件。UpdateData函数的原型如下:
  BOOL UpdateData( BOOL bSaveAndValidate = TRUE );
  函数参数为TRUE,即将对话框及其控件中的数据传递给程序代码中的成员变量;
  函数参数为FALSE,即将类中的数据状态传递给对话框及其控件。
  当用户重载DoDataExchange函数时,也就为每一个数据成员(控件)指定了一个DDX函数调用。
  对话框数据验证
  除了调用DDX参数指定数据交换外,用户还可以使用DDV函数进行对话框数据验证。在调用控件的DDX函数后,必须立即调用该控件的DDV函数。大部分DDV函数的原型如下所示。
  DDV_MinMaxCustom(pDX, Data, MinData, MaxData);
  其中,参数pDX是一个指向CdataExchange对象的指针,参数Data中存放着即将被验证的数据,后两个参数用于定制数据的范围。
  CdataExchange类
  如果仅仅需要使用对话框数据,一般没有必要了解数据交换/验证的核心内容。但在了解了数据交换和验证的实质后,用户就可以编写自己的数据交换和验证代码,定制DDX/DDV.
  对话框控件
  控件是一个可以与其交互以完成输入或操作数据操作的对象,它也是一种特殊的窗口。控件通常出现在对话框或工具栏中。Windows提供了多种多样的控件,在MFC应用程序中,能够使用的控件通常可以分为三种。
  1)windows公用控件:包括编辑控件、按钮、列表框、组合框、滑动条控件等,另外也包括所有者描述的控件。
  2)ActiveX控件:既可以在对话框中使用,也可以在HTML网页中使用。
  3)由MFC提供的其他控件类
  我们主要介绍第一种类型的控件——Windows公用控件。
  Windows操作系统提供了多种windows公用控件,这些控件对象都是可编程的,Visual C++的对话框编辑器支持将这些控件对象添加到对话框中。用户可以在工具箱的对话框编辑器中看到这些windows公用控件。MFC为了更好的支持windows公用控件,提供了多种控件类,每一个控件类封装一种控件,并提供相应的成员函数来管理操作控件。

热心网友 时间:2023-10-18 14:34

对话框  一种次要窗口,包含按钮和各种选项,通过它们可以完成特定命令或任务。
  对话框与窗口有区别,它没有最大化按钮、没有最小化按钮、不能改变形状大小
  对话框:是人机交流的一种方式,用户对对话框进行设置,计算机就会执行相应的命令。对话框中有单选框、复选框等。
  对话框的组成
  对话框主要由两部分组成。
  对话框资源:可以使用对话框编辑器来配置对话框的界面,如对话框的大小、位置、样式,对话框中控件的类型和位置等。另外,我们还可以在程序的执行过程中动态创建对话框资源。
  对话框类:在MFC程序中,可以使用向导帮助用户建立一个与对话框资源相关联的类,通常这个类由CDialog类派生。
  对话框的类型
  对话框可以分为模式对话框和无模式对话框两种类型。
  CDialog
  为了能够方便的操作对话框,MFC为用户提供了CDialog类。它是在屏幕上显示对话框的基类,与对话框资源紧密相关,提供了管理对话框的接口,封装了一些对话框的相关操作。
  从CDialog的定义代码可以看出,Cdialog提供了两套构建Cdialog对象的系统,分别用于模式对话框和无模式对话框。
  无模式对话框对象的构建过程,它首先调用缺省的构造函数生成对话框对象,然后调用Create函数创建和初始化对话框。Cdialog类中的Create函数有两种函数原型:
  BOOL Create( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL );
  BOOL Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );
  其中,
  参数lpszTemplateName是无模式对话框模板资源的标志符;
  参数nIDTemplat是对话框模板资源的标志符,它通常以IDD_开头(例如IDD_DIALOG1);
  参数pParentWnd是指向对话框对象所属的父窗口的指针(如果它为NULL,则表示对话框对象的父窗口是应用程序主窗口)。如果希望对话框中它的父窗口创建后马上被显示,就必须把对话框模板设置为WS_VISIBLE形式。否则,需要调用ShowWindow函数来显示对话框。
  对于模式对话框,其构造函数如下所示:
  CDialog( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL );
  CDialog( UINT nIDTemplate, CWnd* pParentWnd = NULL );
  构造函数的参数说明与无模式对话框的Create函数类似。在模式对话框中,当创建了对话框对象后,可以通过调用DoModal函数来显示对话框。
  一般情况下,无论是模式对话框还是无模式对话框,都有两个按钮OK和CANCEL。对话框为它们提供了默认的消息处理函数OnOk和OnCancel。调用这两个函数都将关闭对话框。所不同的是,默认的OnOk函数中关闭对话框前将更新对话框数据,而默认的OnCancel函数不更新对话框数据。
  当CDialog类检测到OK或Cancel键时,它将调用::EndDialog函数。EndDialog函数虽然结束了对话框应用程序,但却并没有删除对话框对象,释放内存。这对于模式对话框来说,不是问题,它的生存时间不长,我们一般在栈上创建它们;但无模式对话框则不同,它的生存时间更长,我们通常在栈上创建它们,并且希望它在消失之前能够删除自己。因此,大多数情况下,我们需要在无模式对话框中重载OnOK和OnCancel函数,加入DestroyWindows函数来彻底地删除它。
  对话框数据交换和验证机制
  在VC中,所有的对话框函数都是使用C++代码实现的,它并没有采用特殊的资源或“奇特”的宏,但却可以很好地实现用户与应用程序之间的交互工作,这里的关键就在于对话框应用程序中广泛采用的对话框数据交换和验证机制。
  对话框数据交换(DDX,Dialog Data Exchange)用于初始化对话框中的控件并获取用户的数据输入,而对话框数据验证(DDV,Dialog Data Validation)则用于验证对话框中数据输入的有效性。MFC在每个对话框类中提供了一个用于重载的虚函数——DoDataExchange来实现对话框数据交换和验证工作。
  对话框数据交换
  如果使用DDX机制,则通常在OnInitDialog程序或对话框构造函数中设置对话框对象成员变量的初始值。在对话框即将显示前,应用程序框架的DDX机制将成员变量的值传递给对话框的控件,当对话框响应DoModal或Create而被显示时,对话框控件将“显示”这些值。Cdialog类中的OnInitDialog函数默认时将调用CWnd类的UpdateData成员函数初始化对话框中的控件。UpdateData函数的原型如下:
  BOOL UpdateData( BOOL bSaveAndValidate = TRUE );
  函数参数为TRUE,即将对话框及其控件中的数据传递给程序代码中的成员变量;
  函数参数为FALSE,即将类中的数据状态传递给对话框及其控件。
  当用户重载DoDataExchange函数时,也就为每一个数据成员(控件)指定了一个DDX函数调用。
  对话框数据验证
  除了调用DDX参数指定数据交换外,用户还可以使用DDV函数进行对话框数据验证。在调用控件的DDX函数后,必须立即调用该控件的DDV函数。大部分DDV函数的原型如下所示。
  DDV_MinMaxCustom(pDX, Data, MinData, MaxData);
  其中,参数pDX是一个指向CdataExchange对象的指针,参数Data中存放着即将被验证的数据,后两个参数用于定制数据的范围。
  CdataExchange类
  如果仅仅需要使用对话框数据,一般没有必要了解数据交换/验证的核心内容。但在了解了数据交换和验证的实质后,用户就可以编写自己的数据交换和验证代码,定制DDX/DDV.
  对话框控件
  控件是一个可以与其交互以完成输入或操作数据操作的对象,它也是一种特殊的窗口。控件通常出现在对话框或工具栏中。Windows提供了多种多样的控件,在MFC应用程序中,能够使用的控件通常可以分为三种。
  1)windows公用控件:包括编辑控件、按钮、列表框、组合框、滑动条控件等,另外也包括所有者描述的控件。
  2)ActiveX控件:既可以在对话框中使用,也可以在HTML网页中使用。
  3)由MFC提供的其他控件类
  我们主要介绍第一种类型的控件——Windows公用控件。
  Windows操作系统提供了多种windows公用控件,这些控件对象都是可编程的,Visual C++的对话框编辑器支持将这些控件对象添加到对话框中。用户可以在工具箱的对话框编辑器中看到这些windows公用控件。MFC为了更好的支持windows公用控件,提供了多种控件类,每一个控件类封装一种控件,并提供相应的成员函数来管理操作控件。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
谁能给个单机版的风云之雄霸天下啊?? 求风云雄霸天下PC单机游戏WIN7版 雄霸天下任务指南 开心网001老房子卖了以后家具还有吗? 为什么001开心网买房子组件删除仓库里的东西都没了 请教一下,开心001的开心庄园里面的建材有好多富余的的 除了5元一个卖... 开心网001小号怎么给大号送房子? 开心网001多少级能送别人房子?多少级能接受别人给的房子? 开心网001果实或家具能送人吗 开心网(kaixin001)怎么买外地房子? 电脑总是显示内存不足跑不动了是怎样回事? 为什么电脑老提示内存不足? 做一吨塑料泡沫箱要音多少原材料 为什么计算机总是提示内存分配不足? 泡沫箱小菜藏塑料瓶是什么材料? 电脑总显示内存不足是怎么回事 什么是EPP泡沫材料?EPP泡沫箱一般在哪些行业使用 为什么电脑总是提示内存不足 什么是EPP泡沫箱材料?EPP泡沫箱一般在哪些行业使用 为什么计算机会经常出现提示内存不足? 韩雪(演唱飘雪的)到底是什么人? 韩雪最近很少出现在大家的眼前,根据以往的作品来看,大家觉得她是一个什么人? 六爻占卜:请问我的正缘什么时候出现? 韩雪哪里人? 塑料泡沫箱装的成分是什么 我国历史上的少年名将都有谁? 刘邦斩蛇起义什么颜色的蛇 禅宗公案:锄草斩蛇 这里说的粗细指的是什么? 斩蛇草莽英雄,推翻暴秦社稷功说的是谁 生产EPS泡沫板、泡沫箱所用的原料有哪些? 谢谢! 海信电视led58xt880j3du刷机包下载专区 海信开不开机怎么刷机,开不开机,怎么半,急急急 移动电源可以给暖手宝充电吗 可移动电源可以用于USB暖手宝的供电吗? 跟男朋友异地,情人节想要送他男士暖手宝,也可以充当充电宝,可以刻字,你们看看可以吗??? 抖音里申请跳舞主播需要什么证明材料- 问一问 霹雳爷们葬爱家族第三季那首日文歌叫什么 葬爱 的歌 葬爱家族唱杀马特歌,好听吗 跑男第五季十二期插曲有哪些 密封圈聚四氟乙烯PTFE材料有哪些特性呢? 求奔跑吧兄弟第五季第三期第80分钟37秒的插曲叫什么 奔跑吧兄弟第五季第三期指压板环节女生们坚持的时候放的插曲 是女生 奔跑吧兄弟第五季第十二期插曲有哪些 奔跑吧兄弟第五季6月2号插曲 也有是什么意思啊 儿童杀人判刑 WⅠN2003 的网路连接设置? so have i是我也有的意思吗???还是so do i 如何将oracle的NLS_LANGUAGE 由 AMERICAN_AMERICA.AL32UTF8修改成SIMPLIFIED CHINESE_CHINA.AL32UTF8 如何通过http请求判断浏览器是否被劫持