一、API:
非模态模态对话画框:
1.创建对话框前都要先天件对话框资源
2.创建非模态对话框,先用
HWND CreateDialog(HINSTANCE hInstance,
LPCTSTR lpTemplate,
HWND hWndParent,
DLGPROC lpDialogFunc
);
函数功能:CreateDialog宏从一个对话框模板资源创建一个无模式的对话框,
CreateDiaog宏使用CreateDialogParam函数
hlnstance:标识模块事例,该模块的可执行文件含有对话框模板。
pTemplate: 标识对话框模板,此参数或是指向一个以结尾的字符串指针,该字符串指定对话框
模板名,或是指定对话框模板的资源标识符的一个整型值。如果此参数指定了一个
资源标识符,则它的高位字一定为零,且低位字一定含有标识符,一定用
MAKEINTRESOURCE宏来创建此值。
hWndParent: 标识拥有对话框的窗口。
lpDialogFunc: 指向对话框应用程序的指针。有关更多的对话框应用程序的指针,参见
DialogProc。
返回值:如果函数调用成功,则返回值为指向对话框的句柄;如果函数调用失败,则返回值为
NULL。若想获得更多的错误信息,可调用GetLastError函数
3.用Showwindow()函数显示对话框,模态对话框不用调用显示函数;
4.模态对话框的销毁要调用DestroyWindow函数来清除对话框;模态对话框不用
模态对话框:
1. DialogBox(HINSTANCE hInstance,
LPCTSTR lpTemplate,
HWND hWndParent,
DLGPROC lpDialogFunc
);
2.EndDialog函数中止模态的对话框
EndDialog函数并不立即清除对话框。而是设置一个标志,并且允许对话框应用程序把
控制权返回系统。系统在试图从应用程序队列检索下一个消息之前检测标志。如果已经设置了标
志则系统中止消息循环,清除对话框,且用nResUlt中的值作为从创建对话框的函数中返回的值。
二、MFC:
1.创建模态对话框,调用对话框类的Domodal()函数
2.销毁对话框 调用EndDialog()销毁模态对话框,对于非模态对话框,这个函数只能使对话框不
可见
3.非模态对话框的创建调用Create()
4.非模态对话框的销毁要调用,DestryWindow()函数销毁窗口和结束消息循环
5.默认对话框上添加的按钮,调用的销毁窗口的函数是EndDialog(),所以对于模态对话框要改写
。