我写了这样一个代码:
bool setVis ( HWND hWnd, bool flag )
{
DWORD dwExStyle = GetWindowLong ( hWnd, GWL_EXSTYLE );
dwExStyle &= ( flag ? ~WS_VISIBLE : WS_VISIBLE );
dwExStyle |= ( flag ? WS_EX_APPWINDOW : WS_EX_TOOLWINDOW );
dwExStyle &= ~( flag ? WS_EX_TOOLWINDOW : WS_EX_APPWINDOW );
return SetWindowLong ( hWnd, GWL_EXSTYLE, dwExStyle ) && ShowWindow ( hWnd, SW_SHOW ) && UpdateWindow ( hWnd ) && ShowWindow ( hWnd, flag ? SW_SHOW : SW_HIDE );
}
它可以隐藏大部分Win32应用的窗口,但对很多UWP无效(如新版计算器,及CalculatorApp.exe)
求大神帮忙解决一下
你不需要去获取窗口的基本样式,你只需要用 IsWindowVisible 和 ShowWindow / SetWindowPos 这样的函数,就可以获取到窗口的可见性,显示或隐藏窗口(包括最大化最小化等)。判断窗口是否最大化最小化,使用 IsZoomed 和 IsIconic 。