我試圖爲ActiveX控件實現切換到全屏模式。這目前通過刪除和隱藏父窗口並更改我的控件的位置和位置。ActiveX控件的全屏模式
但是,在控制處於全屏模式時,我在切換應用程序時遇到了問題。如果我切換到另一個應用程序,然後單擊我的窗口區域(不在任務欄中),它似乎不會被激活。您可以在任務欄中看到另一個應用程序仍然具有高亮顯示,並且在主屏幕上,我的窗口部分隱藏在任務欄後面,除非它具有焦點。
我處理WM_LBUTTONDOWN
窗口消息來檢測我的窗口是否被點擊。我已經試着撥打以下WINAPI功能:
::ShowWindow(m_hWnd, SW_RESTORE);
::SwitchToThisWindow(m_hWnd, FALSE);
::SetForegroundWindow(m_hWnd);
::SetActiveWindow(m_hWnd);
::SetFocus(m_hWnd);
::BringWindowToTop(m_hWnd);
::SetWindowPos(m_hWnd, HWND_TOP, m_monitorInfo.rcMonitor.left, m_monitorInfo.rcMonitor.top, m_monitorInfo.rcMonitor.right, m_monitorInfo.rcMonitor.bottom, SWP_NOSIZE | SWP_NOMOVE | SWP_SHOWWINDOW); // SWP_NOACTIVATE, SWP_NOOWNERZORDER
我還試圖用::SetWindowLongW(m_hWnd, GWL_STYLE, WS_VISIBLE);
其令人驚訝地給我窗口的焦點回來。但是當試圖再次從全屏模式切換回來時,它突然消失了。
我不知道爲什麼有這麼多不同的功能,對我來說似乎都做了大致相同。但無所謂,因爲他們中沒有一個能夠工作。
正確表達我的控件的正確方法是什麼?