gpt4 book ai didi

mfc - 在哪里调用 MFC 对话框的 DestroyWindow()?

转载 作者:行者123 更新时间:2023-12-02 02:05:16 29 4
gpt4 key购买 nike

我目前正在 MFC 应用程序中处理对话框,诚然,我对 MFC 还很陌生。

假设我有一个类 A(派生自 CDialog),它使用类 B(也派生自 CDialog) >)。因此,A::OnInitDialog() 调用 Bcreate(...) 方法。

我现在看到 B 类的析构函数包含

if ( GetSafeHwnd() )
{
DestroyWindow();
}

这样可以吗?根据我的理解,最好在 A::OnDestroy() 中调用 BDestroyWindow() 方法。是这样吗?

感谢您的帮助!
奥利弗

最佳答案

在深入研究 MFC 时,您可能已经注意到的一件事是,它是一个包装 API,而不是严格面向对象的。虽然我们希望使用 RAII(资源获取即初始化),但 MFC 不会在其构造函数中创建窗口。正如您正确指出的那样,它是通过 Create() 方法实现的。

因此,考虑到 MFC 的工作方式,在销毁 A 时销毁 B 对我来说更有意义(A::OnDestroy),所以我认为你走的是正确的道路。

关于mfc - 在哪里调用 MFC 对话框的 DestroyWindow()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6593036/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com