全屏和退出全屏

1.添加变量

  WINDOWPLACEMENT m_OldWndPlacement; //用来保存原窗口位置 
 BOOL m_bFullScreen;         //全屏显示标志 
 CRect m_FullScreenRect; //表示全屏显示时的窗口位置 

2.全屏

	GetWindowPlacement(&m_OldWndPlacement); 
    CRect WindowRect;
	GetWindowRect(&WindowRect); 
    CRect ClientRect;              
    RepositionBars(0, 0xffff, AFX_IDW_PANE_FIRST, reposQuery, &ClientRect); ClientToScreen(&ClientRect);
	 // 获取屏幕的分辨率 
	 int nFullWidth=GetSystemMetrics(SM_CXSCREEN); 
	 int nFullHeight=GetSystemMetrics(SM_CYSCREEN); 
	 // 将除控制条外的客户区全屏显示到从(0,0)到(nFullWidth, nFullHeight)区域, 将(0,0)和(nFullWidth, nFullHeight)两个点外扩充原窗口和除控制条之外的 客户区位置间的差值, 就得到全屏显示的窗口位置 
	 m_FullScreenRect.left=WindowRect.left-ClientRect.left; 
	 m_FullScreenRect.top=WindowRect.top-ClientRect.top; 
	 m_FullScreenRect.right=WindowRect.right-ClientRect.right+nFullWidth;
	 m_FullScreenRect.bottom=WindowRect.bottom-ClientRect.bottom+nFullHeight; 
	 m_bFullScreen=TRUE; // 设置全屏显示标志为 TRUE 
	 // 进入全屏显示状态 
	 WINDOWPLACEMENT wndpl; 
	 wndpl.length=sizeof(WINDOWPLACEMENT); 
	 wndpl.flags=0; 
	 wndpl.showCmd=SW_SHOWNORMAL; 
	 wndpl.rcNormalPosition=m_FullScreenRect; 
	 SetWindowPlacement(&wndpl);

3.退出全屏

	    if(m_bFullScreen) 
	{
	    // 退出全屏显示, 恢复原窗口显示 
        ShowWindow(SW_HIDE); 
        SetWindowPlacement(&m_OldWndPlacement);
	}


 

你可能感兴趣的:(全屏和退出全屏)