在 Win32 中,如何检测 HWND 是否为对话框?

In Win32, How can I detect if a HWND is a dialog?

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

使用GetClassLong()找到它的class原子。除非它是用自定义 window class 创建的(极不可能),否则它的 class 将是 WC_DIALOG.

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

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

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