`

EndDialog 与 DestroyWindow 的区别

 
阅读更多
(1) EndDialog(-1);

关闭模态对话框,并且将参数作为父对话框调用的返回值。

(2)  DestroyWindow();  ::PostQuitMessage(0);

DestroyWindow 关闭非模态对话框。 退出消息循环,真正结束进程。有不少程序窗口关闭,但是不等于退出运行。
分享到:
评论

相关推荐

    OnOK OnCancel OnClose OnDestroy 详解

    在这个过程中,CDialog::OnOK()和CDialog::OnCancel()会分别调用EndDialog()函数,而对非模式对话框,需要调用DestroyWindow()并执行额外的处理以确保对话框正确关闭。 最后,让我们总结一下EndDialog()函数在...

    vc模态和非模态对话框关闭过程

    注意不要调用基类`CDialog`中的`OnCancel()`函数,因为它会调用`EndDialog()`,这会导致对话框变得不可见但并没有真正销毁。 ```cpp void CTestDlg::OnCancel() { DestroyWindow(); } ``` - **PostNcDestroy...

    模态与非模态对话框的区别.pdf

    【模态对话框与非模态对话框的区别】 在计算机编程中,特别是在Windows应用程序开发中,模态对话框(Modal Dialog Box)和非模态对话框(Modeless Dialog Box)是两种不同类型的用户界面元素,它们在用户交互和程序...

    模态与非模态对话框的区别.docx

    【模态对话框与非模态对话框的区别】 在计算机编程,尤其是Windows应用程序开发中,模态对话框和非模态对话框是两种常见的交互方式,它们在用户界面设计和程序流程控制上有着显著的不同。 模态对话框是一种在用户...

    模式对话框与非模式对话框的区别.pdf

    - **模式对话框**:模式对话框通常使用`EndDialog`函数来销毁,这通常与IDOK(确认)或IDCANCEL(取消)按钮的响应关联。 - **非模式对话框**:非模式对话框的销毁是通过`DestroyWindow`函数完成的。当接收到WM_...

    非模态对话框的释放.pdf

    这些函数在模态对话框中调用`CDialog::EndDialog`,使对话框变得不可见但并不销毁。对于非模态对话框,应重写这些函数并调用`CDialog::DestroyWindow()`来实际销毁窗口。 ```cpp void CTestDlg::OnOK() { // ...

    模态与非模态对话框的区别与操作.docx

    4. **关闭操作**:关闭非模态对话框需调用`DestroyWindow()`,而模态对话框通常使用`EndDialog()`。非模态对话框的`OnOK`和`OnCancel`函数需要自定义以调用`DestroyWindow()`。 5. **内存管理**:非模态对话框需要...

    吕鑫MFC教学知识点汇总

    非模式对话框和模式对话框有所不同,非模式对话框可以通过EndDialog或DestroyWindow来隐藏,但不会被彻底销毁,而模式对话框则是在关闭后才会被销毁。 CWnd类是MFC中非常重要的一个基类,它提供了许多成员函数用于...

    非模态对话框.pdf

    非模态对话框在计算机软件开发,特别是在C++和MFC(Microsoft Foundation Classes)框架下,是一种非常重要的用户界面元素。...理解其创建、管理以及与模态对话框的区别,对于高效地设计和实现MFC应用至关重要。

    模态与非模态对话框的区别与操作.pdf

    【模态对话框与非模态对话框的区别】 模态对话框和非模态对话框是Windows编程中两种常见的对话框类型,它们在用户交互和程序流程控制上有显著的差异。 1. **创建方式** - **模态对话框**(Modal Dialog Box)通常...

    模式对话框与非模式对话框的区别.docx

    **模式对话框与非模式对话框的区别** 模式对话框(Modal Dialog Box)和非模式对话框(Modeless Dialog Box)是Windows编程中两种常见的对话框类型,它们在使用和功能上有着显著的区别。 1. **使用上的差异** - *...

    用MFC对话框的若干思路

    对话框是用户与应用程序交互的重要组件,通常用于输入数据、显示信息或者进行设置。本文主要讨论如何在MFC中创建和管理模态对话框与非模态对话框。 模态对话框是一种阻塞式对话框,当调用`DoModal()`函数创建模态...

    非模态对话框的释放.docx

    - 在`OnOK`和`OnCancel`中,不应调用`CDialog::OnOK()`或`CDialog::OnCancel()`,因为它们会调用`EndDialog`,这是为模态对话框设计的。对于非模态对话框,这只会隐藏对话框而不会销毁。你应该使用`DestroyWindow()...

    第5章对话框和常用控件.ppt

    对于无模式对话框,`OnOK`和`OnCancel`函数通常需要重载,以便使用`DestroyWindow`来替代`EndDialog`。 5.1.2 使用对话框编辑器 对话框编辑器是创建和编辑对话框界面的强大工具。通过ResourceView页面,可以打开...

    非模态对话框.docx

    关闭非模态对话框时,需使用`CWnd::DestroyWindow`,而不是`CDialog::EndDialog`。因为`EndDialog`主要用于模态对话框,它会终止消息循环并返回一个结果代码。对于非模态对话框,我们需要自定义`OnOK`和`OnCancel`...

    如何关闭窗口

    总的来说,关闭窗口涉及到一系列的步骤,包括处理`WM_CLOSE`消息、执行必要的清理、调用`DestroyWindow()`或`EndDialog()`,以及在适当的时候退出消息循环。在MFC中,这些都可以通过重载相应的成员函数来实现,确保...

    详解VC++模态对话框和非模态对话框

    - 返回值通常会被传递给`CDialog`的另一个成员函数`EndDialog`,用来关闭模态对话框。 **示例代码:** ```cpp void CASCEView::OnDialog() { CASCEDlg dlg; int nResult = dlg.DoModal(); // 继续处理nResult } ...

    资源与对话框1

    非模态对话框不阻塞父窗口,需要使用CreateDialog函数创建,并且消息循环需要额外处理关闭对话框的逻辑,使用DestroyWindow销毁非模态对话框。 控件的交互主要通过WM_COMMAND消息,其中wParam的高低字节分别代表...

    mfc模式与非模式对话框例程

    3. **生命周期**:模式对话框的生命周期由DoModal()函数开始,当用户点击“确定”、“取消”或其他关闭按钮,或者通过代码调用EndDialog()函数时结束。 4. **应用实例**:例如,设置向导、保存文件对话框等,通常...

    1.5 如何关闭窗口

    在C++类中,你可以定义一个名为BEGIN_MESSAGE_MAP, END_MESSAGE_MAP的宏来声明消息映射,然后使用ON_MESSAGE, ON_COMMAND, ON_BN_CLICKED等宏将消息与处理函数关联起来。对于WM_CLOSE消息,我们需要定义类似如下的...

Global site tag (gtag.js) - Google Analytics