windows全屏顯示

//獲取當前系統的分辨率
WINDOWPLACEMENT m_struOldWndpl;
g_iCurScreenWidth = GetSystemMetrics(SM_CXSCREEN);
g_iCurScreenHeight = GetSystemMetrics(SM_CYSCREEN);


void CClientDlg::FullScreen(BOOL bFullScreen)
{
int iShowStat = bFullScreen?SW_HIDE:SW_SHOW;

GetDlgItem(IDC_COMBO_SHOW_SUM)->ShowWindow(iShowStat);
GetDlgItem(IDC_BUTTON_PALYBACK)->ShowWindow(iShowStat);
GetDlgItem(IDC_BUTTON_BACK)->ShowWindow(iShowStat);
GetDlgItem(IDC_BUTTON_EXIT)->ShowWindow(iShowStat);


if (bFullScreen)
{
CRect rectWholeDlg; //entire client(including title bar)
CRect rectClient; //client area(not including title bar)
CRect rectFullScreen;
//for full screen while backplay
GetWindowPlacement(&m_struOldWndpl);


GetWindowRect(&rectWholeDlg);
RepositionBars(0, 0xffff, AFX_IDW_PANE_FIRST, reposQuery, &rectClient);
ClientToScreen(&rectClient);


rectFullScreen.left = rectWholeDlg.left-rectClient.left;
rectFullScreen.top = rectWholeDlg.top-rectClient.top;
rectFullScreen.right = rectWholeDlg.right+g_iCurScreenWidth - rectClient.right;
rectFullScreen.bottom = rectWholeDlg.bottom+g_iCurScreenHeight - rectClient.bottom;

WINDOWPLACEMENT struWndpl;
struWndpl.length = sizeof(WINDOWPLACEMENT);
struWndpl.flags = 0;
struWndpl.showCmd = SW_SHOWNORMAL;
struWndpl.rcNormalPosition = rectFullScreen;
SetWindowPlacement(&struWndpl);
}
else
{
SetWindowPlacement(&m_struOldWndpl);
}


if (bFullScreen)
{
GetDlgItem(IDC_STATIC_PREVIEWBG)->MoveWindow(0, 0, g_iCurScreenWidth, g_iCurScreenHeight, TRUE);
}
else
{
GetDlgItem(IDC_STATIC_PREVIEWBG)->MoveWindow(&m_rectPreviewBG, TRUE);
}


if (bFullScreen)
{
GetDlgItem(IDC_STATIC_PREVIEWBG)->ShowWindow(SW_SHOW);
g_dlgOutput[m_iCurWndIndex].MoveWindow(0, 0, g_iCurScreenWidth, g_iCurScreenHeight, TRUE);
g_dlgOutput[m_iCurWndIndex].ShowWindow(SW_SHOW);
m_iShow = 2 ;
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章