如何显示隐藏的 window?

How can I reveal a hidden window?

我想让隐藏的 window 可见。

HWND hWnd = FindWindow(NULL, "MyWindowName");
ShowWindow(hWnd, SW_SHOW);

找到 window,但没有任何反应。它仍然隐藏。 我做错了什么?

如果重要,应用程序是使用 MFC 制作的,并且覆盖了以下方法:

void CMyClass::OnWindowPosChanging(WINDOWPOS* lpwndpos) 
{
    lpwndpos->flags &= ~SWP_SHOWWINDOW;

    CDialog::OnWindowPosChanging(lpwndpos);
}

我做到了

显然您需要修改一些标志。

long style= GetWindowLong(hWnd, GWL_STYLE);
style |= WS_VISIBLE;
SetWindowLong(hWnd, GWL_STYLE, style);

SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);

而且有效。