MFC实现全屏功能的代码
来源:优易学  2011-12-9 21:11:06   【优易学:中国教育考试门户网】   资料下载   IT书店
  很多的播放器都有快捷键控制窗口以全屏幕的方式显示。给应用程序加上全屏幕的功能,并不需要很多的代码,比如给一个基于对话框的应用程序加上全屏功能只需要以下少量代码就可以工作了。
  void CFullScreenDlg::FullScreenView(void)
  {
  RECT rectDesktop;
  WINDOWPLACEMENT wpNew;
  if (!IsFullScreen())
  {
  // We'll need these to restore the original state.
  GetWindowPlacement (&m_wpPrev);
  //Adjust RECT to new size of window
  ::GetWindowRect ( ::GetDesktopWindow(), &rectDesktop );
  ::AdjustWindowRectEx(&rectDesktop, GetStyle(), FALSE, GetExStyle());
  // Remember this for OnGetMinMaxInfo()
  m_rcFullScreenRect = rectDesktop;
  wpNew = m_wpPrev;
  wpNew.showCmd = SW_SHOWNORMAL;
  wpNew.rcNormalPosition = rectDesktop;
  m_bFullScreen=true;
  }
  else
  {
  // 退出全屏幕时恢复到原来的窗口状态
  m_bFullScreen=false;
  wpNew = m_wpPrev;
  }
  SetWindowPlacement ( &wpNew );
  }
  void CFullScreenDlg::OnGetMinMaxInfo(MINMAXINFO* lpMMI)
  {
  // TODO: Add your message handler code here and/or call default
  if (IsFullScreen())
  {
  lpMMI->ptMaxSize.y = m_rcFullScreenRect.Height();
  lpMMI->ptMaxTrackSize.y = lpMMI->ptMaxSize.y;
  lpMMI->ptMaxSize.x = m_rcFullScreenRect.Width();
  lpMMI->ptMaxTrackSize.x = lpMMI->ptMaxSize.x;
  }
  CDialog::OnGetMinMaxInfo(lpMMI);
  }
  bool CFullScreenDlg::IsFullScreen(void)
  {
  // 记录窗口当前是否处于全屏状态
  return m_bFullScreen;
  }

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训