【问题标题】:In Win32, How can I detect if a HWND is a dialog?在 Win32 中,如何检测 HWND 是否为对话框?
【发布时间】:2020-10-20 02:07:52
【问题描述】:

在纯 C Win32 应用程序中,如何检测 HWND 是否为 a dialog

【问题讨论】:

    标签: c winapi dialog hwnd


    【解决方案1】:

    使用GetClassLong() 找到它的类原子。除非它是使用自定义窗口类创建的(不太可能),否则它的类将是 WC_DIALOG

    if ( WC_DIALOG == MAKEINTATOM(GetClassLong(hWnd, GCW_ATOM)) )
    {
        /* this is a dialog */
    }
    

    【讨论】:

      【解决方案2】:

      对话框的标准类名称为"#32770"。您可以使用GetClassName()/RealGetWindowClass() 1 来检查窗口是否正在使用对话框类。

      1:见What makes RealGetWindowClass so much more real than GetClassName?

      【讨论】:

      • 这只是字符串形式的类原子:)
      猜你喜欢
      • 1970-01-01
      • 2015-10-28
      • 1970-01-01
      • 1970-01-01
      • 2017-01-24
      • 2011-03-19
      • 1970-01-01
      • 1970-01-01
      • 2011-11-15
      相关资源
      最近更新 更多