Winapi 我如何才能打开隐藏的窗口?

Winapi 我如何才能打开隐藏的窗口?,winapi,mfc,Winapi,Mfc,我想让隐藏的窗口可见 HWND hWnd = FindWindow(NULL, "MyWindowName"); ShowWindow(hWnd, SW_SHOW); 找到了窗口,但什么也没发生。它仍然隐藏着。 我做错了什么 如果有问题,应用程序将使用MFC进行,并覆盖以下方法: void CMyClass::OnWindowPosChanging(WINDOWPOS* lpwndpos) { lpwndpos->flags &= ~SWP_SHOWWINDOW;

我想让隐藏的窗口可见

HWND hWnd = FindWindow(NULL, "MyWindowName");
ShowWindow(hWnd, SW_SHOW);
找到了窗口,但什么也没发生。它仍然隐藏着。 我做错了什么

如果有问题,应用程序将使用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);

如果活动窗口属于某个进程,则Windows不允许其他进程更改活动窗口。也许这就是你所遇到的?很明显,
OnWindowPosChanging
处理程序阻止了窗口的显示。NVIDIA有一个名为nView的软件,它设法使窗口可见。所以我知道这是可能的。我只是不知道他们是怎么做到的。