c++ - 如何判断是否已创建/初始化 MFC 对话框?

标签 c++ mfc winapi

我的对话框类中有一个 OnMove 处理程序,它用控制对象(即 CButton)做一些事情。我发现这个处理程序在调用对话框 OnInitDialog 方法之前被调用,因此当我尝试调用子控件上的方法时,我在调试中得到 ASSERTS,因为控件尚不存在......它们是在 OnInitDialog 中创建的.

我想检查两件事:

  1. 我如何知道对话框已经初始化?
  2. 如何检查已创建单个 CWnd 控件对象的窗口?

在这两种情况下,我都在寻找可以使用的类成员或方法调用结果。

最佳答案

  1. OnInitDialog

    中设置一个标志
  2. 使用对话框的m_hWnd:

    if ( ::IsWindow(m_Ctrl.m_hWnd) ) {
        ...
    }
    

关于c++ - 如何判断是否已创建/初始化 MFC 对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2973467/

相关文章:

windows - 为什么我的 MFC 应用程序在与两个滚动条交互后挂起?

winapi - Win8 - Windows.UI.Xaml.dll 中未处理的异常

c++ - 错误 LNK2019 : unresolved external symbol __imp__EnumDisplayDevicesA@16 referenced in function "private: struct _DISPLAY_DEVICEA __thiscall

c++ - 如何获取md5sum命令并获取代码中的字符串输出

c++ - 反向代理的典型架构是什么?

c++ - MFC新手: how to determine if a character is hexadecimal using "FindOneOf()"

c++ - 使用 GDAL 库加载图像 (VC++)

winapi - MFC 菜单不会传播到应用程序中

c++ - 使用 std::copy 的问题

c++ - boost beast WebSocket 升级握手失败