ActiveX 컨트롤에 대해 전체 화면 전환 모드를 구현하려고했습니다. 이것은 현재 부모 창을 제거하고 숨기고 내 컨트롤의 위치와 위치를 변경하여 작동합니다.ActiveX 컨트롤의 전체 화면 모드
그러나 컨트롤이 전체 화면 모드 인 동안 응용 프로그램을 전환하는 데 문제가 있습니다. 다른 응용 프로그램으로 전환 한 다음 작업 표시 줄이 아닌 창 영역을 클릭하면 활성화되지 않은 것으로 보입니다. 작업 표시 줄에서 다른 응용 프로그램이 아직 강조 표시되어 있고 주 화면에 내 포커스가 있지 않으면 내 창이 작업 표시 줄 뒤에 부분적으로 숨겨져 있음을 볼 수 있습니다.
윈도우 메시지를 처리하여 내 창이 클릭되는지 확인합니다. 그리고 난 이미 다음 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);
을 사용했습니다. 그러나 전체 화면 모드에서 다시 전환하려고 할 때 갑자기 사라졌습니다.
내가 왜 그렇게 많은 기능을 갖고 있는지 알지 못한다. 그러나 어쨌든 그들 중 누구도 일하지 않아도 상관 없습니다.
내 컨트롤을 올바르게 작동시키는 올바른 방법은 무엇입니까?