第六节MFC对话框函数集Word下载.docx
- 文档编号:20936461
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:18
- 大小:29.09KB
第六节MFC对话框函数集Word下载.docx
《第六节MFC对话框函数集Word下载.docx》由会员分享,可在线阅读,更多相关《第六节MFC对话框函数集Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
如果函数调用成功,则返回值为指向对话框的句柄;
如果函数调用失败,则返回值为NULL。
若想获得更多的错误信息,可调用GetLastError函数。
备注:
CreateDialog函数用CreateWindowEx函数来创建对话框。
然后CreateDialog函数把一个WM_INITDIALOG消息(如果模板指定DS_SETFONT类型,则加上一个WM_SETFONT消息)传送到对话框应用程序。
如果模板指定WS_VISIBLE风格,则函数显示对话框,最后CreateDlalog返回指向对话框的窗口句柄。
CreateDialog函数返回之后,应用程序通过Showwindow函数显示对话框(如果还没有显示)。
应用程序通过利用DestroyWindow函数来清除对话框。
Windows95和以后版本:
系统每个对话框模板可以支持最多达255个控制。
如果要把多于255个控制放入对话框中,必须在WM_INITDIALOG消息处理器中创建控制,而不是把它们放入模板中。
WindowsCE:
IpTempIate参数指向的对话框模板中,DIGTEMPLATE结构并不支持所有类型。
速查:
WindowsNT:
3.1及以上版本:
Windows:
95及以上版本:
1.0及以上版本:
头文件:
Winuser.h;
库文件:
user32.lib;
Unicode:
Unicode:
在WindowsNT上实现为Unicode和ANSI两种版本。
该宏在内存中从对话框模板上创建一个无模式对话框。
此宏使用CreateDialoglndirectparam函数。
HWNDCreateDialoglndirect(HINSTANCEhlnstance,LPCDLGTEMPLATEIPTemplate,HWNDhWndParent,DLGPROCIPDialogFunc);
hlnstance:
标识创建对话框的模块的事例。
IPTemplate:
指向含有一个模板的全局内存对象的指针。
CreateDialoglndirect用此模板创建对话框。
对话框模板由描述对话框的标题组成,跟随着标题之后的是描述每一个控制的一个或多个数据块,模板可以用标准格式或扩展格式。
在标准模板中,标题是由DLGTEMPLATE结构跟随一个变长数组组成。
每个控制的数据是由DLGTEMPLATE结构跟随一个变长数组组成。
在扩展模板中,标题用DLGTEMPLATEEX格式,且控制定义用DLGITEMPLATEEX格式。
CreatDialoglndirect函数返回后,可释放模板,此模板仅用于启动对话框。
IpDialogFunc:
指向对话框应用程序的指针,有关更多的对话框应用程序的指针,参见DialogProc。
如果函数调用成功,则返回值为指向对话框的句柄。
若想获得更多错误信息,可调用GetLastError函数。
CreateDialOglndirect宏使用CreateWindowEx函数来创建对话框,然后该函数把一个WM_INITDIALOG消息发送到对话框应用程序,如果模板指定DS_SETFONT类型,则函数也把一个WM_SETFONT消息发送到对话框应用程序。
如果模板指定WS_VISIBLE类型,则函数显示对话框,最后CreateDialoglndirect返回指向对话框的窗口句柄。
CreateDialoglndirect函数返回之后,可用ShowWindow函数来显示对话框(如果还没有显示)。
用DestroyWindow函数来清除对话框。
在标准对话框模板中,DLGTEMPLATE结构和每一个DLGITEMTEMPLATE结构必须按DWORD边界对齐,遵循DLGEMTEPLATE结构而创建的数据数组也一定按DWORD边界对齐。
模板中其他所有变长数组一定要按DWORD边界进行调整。
在扩展对话框模板上DLGTEMPLATEEX结构和每一个DLGITEMTEMPLATEEX结构必须按DWORD边界对齐;
遵循DLGEMTEPLATE结构而创建的数据数组也一定按DWORD边界对齐。
所有对话框模板的字符串,例如对话框和按钮的标题,一定是Unicode字符串。
使用
MltiByteToWidechar函数产生这些Unicode字符串可以创建在Windows和WindowsNT两种系统上工作的代码。
系统可支持每个对话框模板最多为255个控制。
为把多于255个控制放入对话框,可以在WM_INITDLAIOG消息处理器中创建控制,而不是把它们放入模板中。
lpTempate参数指向的对话框模板中,DLGTEMPLATE结构并不支持所有的类型。
3.1及以上版本;
Windows:
95及以上版本;
1.0及以上版本;
Winuser.h;
Unicode:
在WindowsNT上实现为Unicode和ANSI两种版本。
该函数从内存中的对话框模板上创建一个无模式对话框,在显示对话框之前,函数把应用程序定义的值作为WM_INITDIALOG消息的IParam参数传送到对话框过程。
应用程序可用此值初始化对话框控制。
HWNDCreateDialoglndirectParam(HINSTANCEhlnstance,LPCDLGTEMPLATIPTemPIate,HWNDhWndParent,DLGPROCIpDialogFunc,LPARAMIParamlnlt);
标识将创建对话框的模块的事例。
IpTemplate:
指向一个含有模板的全局内存对象的指针,CreateDialoglndirectParam用该模板来创建对话框。
CreateDiloglndirectParam函数返回后,可释放模板,此模板仅用于启动对话框。
HWndParent:
标识拥有对话框的窗口。
指向对话框过程的指针,有关更多的对话框过程的信息,参见DialogProc。
lParamlnit:
指定传递到WM_INIDIALOG消息的IParam参数中对话框中的值。
如果函数调用成功,则返回值为指向对话框的句柄:
CreatDialoglndirectParam函数使用createWindowEx函数来创建对话框,然后该函数把一个WM_INTDIALOG消息发送到对话框应用程序,如果模板指定DS_SETFONT类型,则函数也把一个WM_SETFONT消息发送到对话框应用程序。
如果模板指定WS_VISBLE类型,则函数显示对话框,最后CreatDialogdirectParam返回指向对话框的窗口句柄。
CreatDialoglndirectParam函数返回之后,可用ShowWindow函数来显示对话框(如果还没有显示)。
在扩展对话框模板上DLGTEMPLATEEX结构和每一个DLGITEMTEMPLATEEX结构必须按DWORD边界对齐,遵循DLGEMTEPLATE结构而创建的数据数组也一定按DWORD边界对齐。
MultiByteTowidechar函数产生这些Unicode字符串可以创建在Windows和WindowsNT两种系统上工作的代码。
为把多于255个控制放入对话框,可以在WM_INITDLALOG消息处理器中创建控制,而不是把它们放入模板中。
可视屏幕面积之外的对话框不能自动地被重新定位。
如果用户在对话框有输入焦点的同时按下Alt+H,则系统把一个WM_HELP消息传送到对话过程,应用程序应该通过显示对话框描述表积极帮助来响应此消息。
DLGTEMPLATE结构的类型成员不支持下列类型:
DS_SETFONT:
在对话框中不能设置字体。
DS_RECURSE:
不需要。
任何一个子对话框可自动地被看作递归对话框。
DS_CONTROL:
WS_EX_CONTROLPARENT:
所有对话框都被自动假设为控制母体。
用DS_CENTER类型可得到缺省位置定位。
如果没有指定WS_CHLD.则假设为WS_POPUP类型。
速查:
3.1及以上版本:
winuse.h库文件:
Unicode:
在WindowsNT上实现为Unicode和ANSI两种版本。
该函数根据对话框模板资源创建一个无模式的对话框。
在显示对话框之前,函数把一个应用程序定义的值作为WM_INITDIALOG消息IParam参数传到对话框过程应用程序可用此值来初始化对话框控制。
HWNDCreateDialogParam(HINSTANCEhlnstancem,LPCTSTRIpTemplateName,HWNDhWndParent,DLGPROCIpDialogFunc,LPARAMdwlniParam);
标识一个模块的事例,该模块的可执行文件含有对话框模板。
IpTemplateName:
标识对话框模板。
此参数可以指向一个以NULL结尾的字符串的指针,该字符串指定对话框模板名,或是指定对话框模板的资源标识符的一个整型值。
如果此参数指定了一个资源标识符,则它的高位字一定为零且低位字一定含有标识符。
一定用MAKENTRESOURDE宏指令创建此值。
HwndParent:
指定拥有对话框的窗口。
指向对话框过程的指针。
有关对话框过程的更详细的信息,请参见DialogProc。
dwlnitParam:
指定传递到WM_INITDIALOG消息的IParam参数中的对话框过程的值。
如果函数调用成功则返回值为指向对话框的窗口句柄。
如果函数调用失败则返回值为NULL。
若想获得更多错误信息,请调用GetlastError函数。
CreateoialogParam函数用CreateWindowEx函数创建对话框。
CreateDialogParam函数然后把一个WM_INITDIALOG消息(和一个WM_SETFONT消息,如果模板指定DSSETFONT类型)传递到对话框过程。
如果模板指定WS_VISIBLE类型,则函数显示对话框,最后CreateDialogParam返回对话框的窗口句柄。
CreateDialogParam返回之后应用程序用ShowWindow显示对话框(如果还没有显示)。
应用程序用DestroyWindoW函数来清除对话框。
系统可支持每个对话框模板中最多255个控制。
为把大于255个的控制放入对话框,需要在WM_INITDIALOG消息处理器中创建控制,而不是把他们放入模板中。
IPTemplateName参数指向的对话框模板中DLGTEMPLATE结构并不支持所有的类型。
3.1及以上版本;
头文件;
winuser.h;
use32.lib;
该函数为属于应用程序定义的对话框类的窗口过程提供缺省的消息处理。
LRESULTDefDlgProc(HWNDhDlg,UINTMsg,WPARAMwParam,LPARAMParam);
hDlg:
指定对话框。
Msg:
指定消息数目。
wParam:
指定消息中特定的其他信息。
Iparam:
返回值指定消息处理的结果且依赖于发送的消息。
DefDlgProc函数为对话枢预定义类的窗口应用程序。
此应用程序通过把消息传送到对框应用程序和为对话框应用程序返回的任何一个FALSE消息,提供缺省处理而为对话框提供内部的处理程序。
为自定义对话框创建自定义应用程序的应用程序,常用DefDlgProc而不是DefWindowProc函数来执行缺省的消息处理。
应用程序通过用合适的信息来填充一个WNCLASS结构和通过用RegisterClass函数登记的类创建自定义对话框类。
一些应用程序用GetClasslnfo函数指定与定义对话框的名来填充此机构。
在这种情况下,应用程序在登记之前至少改变IpszClassNamede数目。
在所有的情况下,对于自定义对话框的WNDCLASS的cbWndExtra成员一定至少设置为DLGWINDOWEXTRA。
DefDlgProc函数一定不要通过一个对话框应用程序来调用,这样做会导致循环执行。
3.1及以上版本;
user32.lib;
该宏根据对话框模板资源创建一个模态的对话框。
DialogBOX函数直到指定的回调函数通过调用EndDialog函数中止模态的对话框才能返回控制。
该宏使用DialogBoxParam函数。
intDialogBox(HINSTANCEhlnstance,LPCTSTRIpTemplate,HWNDhWndParent,DLGPROCIpDialogFunc);
标识一个模块的事例该模块的可执行文件含有对话框模板。
此参数可以是指向一个以NULL结尾的字符串的指针,该字符串指定对话框模板名,或是指定对话框模板的资源标识符中的一个整型值。
如果此参数指定了一个资源标识符则它的高位字一定为零,且低位字一定含有标识符。
一定用MAKEINTRESOURDE宏指令创建此值。
hWndParent:
有关更详细的关于对话框过程的信息,请参见DialogProc。
如果函数调用成功,则返回值为在对函数EndDialog的调用中的nResult参数.该函数用于中止对话框。
如果函数调用失败,则返回值为C1。
若想获得更多的错误信息,请调用GetLastError函数。
DialOgBox宏用CreateWindowEx函数创建对话框。
DialogBox函数然后把一个WM_INITDIALOG消息(和一个WM-SETFONT消息,如果模板指定DS_SETFONT类型)传递到对话框过程。
不管模板是否指定WS_VISIBLE类型,函数显示对话框,并且使拥有该对话框的窗口(也称属主窗口)失效,且为对话框启动它本身的消息循环来检索和传递消息。
当对话框应用程序调用EndDialog函数时,DialogBox函数清除对话框户止消息循环,使属主窗口生效(如果以前有效),且返回函数EndDialog调用中的nReSUlt参数。
为把大于255个的控制放入对话框,需要在WM_INITDIALOG消息处理器中创建控制,而不是把他们放入模板中。
WindowsCE:
lpTemplateName参数指向的对话框模板中DLGTEMPLATE结构并不支持所有的类型。
winuser.h;
库文件:
user32.libUnicode:
该宏根据内存中的对话框模板资源创建一个模态的对话框。
DialogBoxlndirect宏直到指定的回调函数通过调用EndDialog函数中止模态的对话框才能返回。
DiaogBoxlndirect宏使用DialogBoxParam函数。
intDialogBoxlndirect(HINSTANCEhlnstance,LPDLGTEMPLATEIpTemplate,HWNDhWndParent,DLGPROClpDialogFunc);
标识一个模块的事例,该模块创建对话框。
此参数指向含有一个模板的全局内存对象的指针。
DialogBoxlndirect用此模板创建对话框。
有关更详细的关于对话框过程的信息,请参见DialogProc。
如果函数调用成功则返回值为在对函数EndDialog的调用中的nResult参数,该EndDialog函数用于中止对话框。
若想获得更多错误信息请调用GetLastError函数。
DialogBoxlndirect宏使用CreateWindowEx函数创建对话枢.然后把一个WM_INITDIALOG消息传递到对话框过程。
如果模板指定DS_SETFONT类型DialogBoxlndirect函数将一个WM_SETFONT消息传递到对话框。
(不管模板是否指定WS_VISIBLE类型),函数显示对话框使属主窗口失效,且为对话框启动它本身的消息循环来检索和传递消息。
当对话框应用程序调用EndDialog函数时,DialogBoxlndirect函数清除对话框,中止消息循环,使主窗口生效(如果以前有效)且返回EndDialog函数调用中的nResult参数。
MultiByteToWidechar函数产生这些Unicode字符串可以创建在Windows和WindowsNT两种系统上工作的代码。
为把多于255个控制放入对话框。
可以在WM_INITDLAIOG消息处理器中创建控制,而不是把它们放入模板中。
IpTemplateName参数指向的对话框模板中DLGTEMPLATE结构并不支持所有的类型。
WindowsNT:
函数功能;
该函数根据内存中对话框模板创建一个模态的对话框。
在显示对话框之前,函数把一个应用程序定义的值作为WM_INITDIALOG消息的IParam
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六 MFC 对话框 函数