MFC里创建对话框create函数里的一个参数lpszTemplateName是什么意思??

作者&投稿:逮虎 (若有异议请与网页底部的电邮联系)
CDialog对话框的Create函数第一个参数nIDTemplate怎么传进去~

如果是模态对话框的:CDialog dlg;dlg.DoModal();
如果是非模态对话框:CtestDlg* dlg = new CtestDlg; dlg->Create(IDD_DIALOG1,this); dlg->ShowWindow(SW_SHOW);//IDD_DIALOG1为你新建对话框的ID。

如_T("宋体")等都可以,别忘记_T()了。

lpszTemplateName
Contains a null-terminated string that is the name of a dialog-box template resource.

你可以理解为就是个ID号,比如IDD_DIALOG1。你可能需要在resouse.h中定义IDD_DIALOG1
比如#defile IDD_DIALOG1 111111111

这个参数就是资源的ID 比如IDD_DIALOG1

对话框
一种次要窗口,包含按钮和各种选项,通过它们可以完成特定命令或任务。
对话框与窗口有区别,它没有最大化按钮、没有最小化按钮、不能改变形状大小
对话框:是人机交流的一种方式,用户对对话框进行设置,计算机就会执行相应的命令。对话框中有单选框、复选框等。
对话框的组成
对话框主要由两部分组成。
对话框资源:可以使用对话框编辑器来配置对话框的界面,如对话框的大小、位置、样式,对话框中控件的类型和位置等。另外,我们还可以在程序的执行过程中动态创建对话框资源。
对话框类:在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公用控件,提供了多种控件类,每一个控件类封装一种控件,并提供相应的成员函数来管理操作控件。


玩FC游戏提示这个CDirectdraw;createsurface failed 什么意思??急急急...
CDirectdraw;createsurface失败

请问什么是ST、 FC、 C、 AT?
答案:ST、STFC、C、和AT是不同的术语,分别有不同的含义。解释:1. **ST**:通常是"Structured Text"的缩写,是一种高级的程序设计语言,主要用于工业自动化和控制系统的开发。ST语言是IEC 61131-3标准的一部分,主要用于可编程逻辑控制器(PLC)的编程。2. **STFC**:没有通用的解释,可能是...

常用的电脑操作小技巧
第一需要在桌面的空白处单击鼠标右键,并且新建立一个“快捷方式”,在弹出的创建快捷方式对话窗口中,在“命令行”中输入“C:windowsRUNDLL32.EXE user,ExitWindows”,然后单击“下一步”按钮,给该快捷方式命名为“一键关机”,这时系统的桌面上就会出现刚才建立的快捷方式了,打开该快捷方式的属性窗口,进入“快捷方式”页...

fc是什么意思的缩写(fc是什么意思啊)
FC是“废柴”拼音头两个字母的简写,意思是对正在谈论的话题不了解却横加评论的人。在android系统里,运行程序的时候弹出一个对话框,强制关闭或者等待也叫FC(forceclose)。FC是什么意思,为何许多球队的队名都有FC FC是足球俱乐部(F=Football,C=Club),像大型体育俱乐部,不光有足球队,还有篮球、...

FC模拟器不能打开 CDirectsound:idirectsound-initialze failed...
VirtuaNES模拟器会检测你电脑的声卡状态,如果检不到就会出现这个提示:所以要想正常运行VirtuaNES,必须启用声卡。看任务栏有无“喇叭”图标。^_^

这FC小霸王游戏叫什么名字 打箱子有a、B、C的字样 吃3个就有一僚机在...
你好,很高兴为你解答,你找的是FC《特救指令》。下面是图片你对比下就知道了。

FC-1的C是什么意思
FC-1里面的c是指中国,f是战斗机 意即Fighter China No.1。

选择按什么键
然后可以通过界面上的联动列表框选择需要设置快捷键的命令:首先在左边的“类别”列表框中选择命令所在的选项卡,然后再在右边的“命令”列表框中选择相应的命令。当选择一个命令时,对话框的底部会出现简要说明。 最后在“请按新快捷键”文本框中输入快捷键。例如:要为“页面布局”选项卡中的“更改文字排列方向和...

c\/ f\/ fc分别代表什么意思?
C、F在显示屏上:C代表的是摄氏度;F代表的是华氏度。C、F是空调的型号:C和F应出现在第二位字母,KC代表窗式空调(整体式) KF代表分体式空调(内外机分开)。空调显示FC:表示空调出现滑动门故障。

win7开机出现对话框?
C> PsService >> S1.TXT 改动服务设置后可再次运行PsService.exe:C> PsService >> S2.TXT 你可以用FC命令比较两个文件的不同:C>FC\/W S1.TXT S2.TXT 或者用FCU等图形化工具。PsTools套件下载地址:http:\/\/www.microsoft.com\/china\/t ... lities\/PsTools.mspx ...

古田县19581053055: 在MFC中如何创建一个函数 -
谢盼夏枯: (1)窗口创建函数这里主要讨论函数Create和CreateEx.它们封装了Win32窗口创建函数::CreateWindowEx.Create的原型如下:BOOL CWnd::Create(LPCTSTR lpszClassName,LPCTSTR lpszWindowName, DWORD dwStyle,const RECT& ...

古田县19581053055: mfc 怎样创建对话框 -
谢盼夏枯: 在资源文件夹下面 dialog附近邮件单击 找到insert 选择dialog 点击new 然后在类向导里面 选择creat a new class 选择ok 并取名假设为 dialog 然后在你已建好的窗口上面插一个按钮 按钮的相应函数为 dialog *CreatServer=new dialog; CreatServer->DoModal(); 这是模态对话框 非模态的用函数 CDialog::creat()实现

古田县19581053055: MFC 对话框的创建和销毁流程 -
谢盼夏枯: 1. EndDialog()是CDialog中的一个成员函数,OnOK其实最后也是调用了它,而在EndDialog()这个函数中,MFC又调用了WIN API中的全局函数::EndDialog(m_hWnd, ONOK).2. 其实这个比较生僻的地方.我们知道MFC是封装了WINDOWS API的,其实CDialog这个类并没有能力自己去创建一个窗口,而必须通过调用API去创建然后把它的句柄保存起来,以备管理.从而当一个CDialog所管理的窗口被关闭之后,CDialog本身依然存在,只不过它引用的句柄已经失效了.而我们知道DoModal这个函数是用来创建并关联窗口的,所以你说的情况不会存在.

古田县19581053055: mfc中创建新窗口 -
谢盼夏枯: 对话框建好,加上类,然后在按钮所在类(头文件中或者cpp中都可以)加上#include那个头文件,然后定义一个全局变量,比如 Cxx a; 然后在按钮的函数中添加,a.DoModal();这个是模态对话框,非模态的话,void CMainFrame::OnModelessdlg() //创建非模态对话框if (!a.m_hWnd) //判断对话框是否已被创建{a.Create(IDD_xx); //创建对话框ID}a.ShowWindow(SW_SHOW);

古田县19581053055: MFC编程,,用Create()函数在view视图里创建了一个按钮 如何给这个按钮添加消息响应 -
谢盼夏枯: 因为Create的最后又个ID参数;因此你可以仿照对话框的按钮的添加;直接复制代码将ID改一下就可以了;但是注意是在View类下建立消息响应

古田县19581053055: mfc怎么创建一个非模态对话框 -
谢盼夏枯: 添加一个非模态对话框1、点击菜单 插入——资源,选择Dialog,点击新建.2、编辑对话框,添加一些控件什么的.3、双击对话框或者打开ClassWizard,为对话框建立一个类,如CMyDialog.4、在*view.cpp的开头添加新建立的类的头文件(...

古田县19581053055: MFC如何创建无模式对话框a -
谢盼夏枯: 一种次要窗口,包含按钮和各种选项,通过它们可以完成特定命令或任务. 对话框与窗口有区别,它没有最大化按钮、没有最小化按钮、不能改变形状大小 对话框:是人机交流的一种方式,用户对对话框进行设置,计算机就会执行相应的命...

古田县19581053055: MFC 创建对话框 -
谢盼夏枯: 你是直接创建了一个对话框程序吧, 因为默认的对话框类已经存在了, 你再添加一个对话框, 双击就会出现你要的 --------

古田县19581053055: 关于MFC对话框的编程
谢盼夏枯: 其实是用 Create 的方式创建非模式对话框(不是 DoModal),然后作为子窗口显示.转换时,把需要的子窗口显示出来并放到正确的位置,把其余的都隐藏就可以了. 当然你要先创建好一个窗口(可以是对话框,比如是 CParentDlg),上面...

古田县19581053055: mfc如何创建无模式对话框?
谢盼夏枯: 无模式对话框 1、首先创建对话框模板资源 2、从CDialog类派生自己的无模式对话框类:CModelessDlg 3、在合适的位置动态创建(new)CModelessDlg的对象:pDlg 4、调用pDlg的Create函数创建无模式对话框 5、调用pDlg的ShowWindow函数显示无模式对话框; 6、覆盖OnOK和OnCancel函数,执行DestroyWindow函数销毁无模式对话框 7、覆盖PosNcDestroy函数,执行delete this;

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网