新人求教:ocx插件,在ie9上面,双击全屏后窗口被压缩到屏幕左上角,但是在ie10和ie11上面又是正常的,
ocx插件,在ie9上面,双击全屏后窗口被压缩到屏幕左上角,但是在ie10和ie11上面又是正常的,这是我的代码:
//全屏
void CRJVideoCtrl::ShowMax()
{
////隐藏系统任务栏
ShowSysTaskBar(false);
::GetWindowRect(GetSafeHwnd(), &m_LastRect);
m_hWndParent = ::GetParent(GetSafeHwnd());
::SetParent(GetSafeHwnd(),::GetDesktopWindow());
INT nScrWidth = GetSystemMetrics(SM_CXSCREEN);
INT nScrHeight = GetSystemMetrics(SM_CYSCREEN);
::SetWindowPos(::GetDesktopWindow(),HWND_TOP,0,0,nScrWidth,nScrHeight,SWP_NOCOPYBITS|SWP_NOREDRAW|SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER);
::ShowWindow(GetSafeHwnd(),SW_SHOWMAXIMIZED);
::SetWindowPos(GetSafeHwnd(), HWND_TOPMOST, 0, 0, nScrWidth, nScrHeight, SWP_SHOWWINDOW |SWP_FRAMECHANGED);
m_BFullScreen = true;
}
//恢复
void CRJVideoCtrl::ShowNormal()
{
ShowSysTaskBar(true);
::SetWindowPos(GetSafeHwnd(), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW|SWP_NOMOVE|SWP_NOSIZE);
::SetParent(GetSafeHwnd(), m_hWndParent);
m_fullDialog.ShowWindow(SW_HIDE);
m_fullDialog.DestroyWindow();
::ScreenToClient(m_hWndParent, (LPPOINT)&m_LastRect);
::ScreenToClient(m_hWndParent, ((LPPOINT)&m_LastRect)+1);
::MoveWindow(GetSafeHwnd(), m_LastRect.left, m_LastRect.top,
m_LastRect.right-m_LastRect.left,
m_LastRect.bottom-m_LastRect.top,
TRUE);
m_BFullScreen=false;
}
////隐藏系统任务栏和开始按钮
void CRJVideoCtrl::ShowSysTaskBar(bool bShow)
{
CWnd* pWnd = CWnd::FindWindow(_T("Shell_TrayWnd"), NULL);
CWnd* startMenu = CWnd::FindWindow(_T("Button"), NULL);
if( !bShow )
{
startMenu->ShowWindow(SW_HIDE);
pWnd->ShowWindow(SW_HIDE);
}
else
{
// Code to Show the System Task Bar
pWnd->ShowWindow(SW_SHOW);
startMenu->ShowWindow(SW_SHOW);
}
}