如何揭示隐藏的窗口?

时间:2015-01-28 10:59:37

标签: winapi mfc

我想让隐藏的窗口可见。

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

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

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

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

    CDialog::OnWindowPosChanging(lpwndpos);
}

1 个答案:

答案 0 :(得分:1)

我做到了。

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

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);

它有效。