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的软件,它设法使窗口可见。所以我知道这是可能的。我只是不知道他们是怎么做到的。