您现在的位置:计算机技术学习网 > 技术中心 > 编程开发 > C >

为MFC应用程序添全屏幕显示功能

来源:网络收集 责任编辑:栏目编辑 发表时间:2013-07-01 19:57 点击:
      在CMainFrame类中添加下列成员变量和成员函数(使用ClassWizard),下面是这些变量和函数的功能说明:

  成员变量:
  BOOL m_bFullScreen; //全屏幕显示标志
  CRect m_FullScreenWindowRect; //全屏幕显示窗口Rect
  WINDOWPLACEMENT m_wpPrev; //用于保存正常视图时的窗口位置信息
  CToolBar * m_wndFullScreenBar; //全屏幕显示时的浮动工具条

  成员函数:
  void OnMenuFullscreen(); //全屏幕显示的处理函数
  void OnGetMinMaxInfo(); //捕获WM_GETMINMAXINFO消息以便允许你增加窗口大小
  void OnUpdateViewFullScreen(); //更新“全屏幕显示”菜单的状态

  源码


  void CMainFrame::OnMenuFullscreen()
  {//全屏幕显示的处理函数
  RECT rectDesktop;
  WINDOWPLACEMENT wpNew;

  if (m_bFullScreen)
  {//全屏幕显示模式
  //隐藏工具条和状态条
  m_wndStatusBar.ShowWindow(SW_HIDE);
  m_wndToolBar.ShowWindow(SW_HIDE);

  //保存正常视图时的窗口位置信息以便恢复原来状态
  GetWindowPlacement (&m_wpPrev);
  m_wpPrev.length = sizeof m_wpPrev;

  //调整RECT为新的窗口尺寸
  ::GetWindowRect ( ::GetDesktopWindow(), &rectDesktop );
  ::AdjustWindowRectEx(&rectDesktop, GetStyle(), TRUE, GetExStyle());

  //保存RECT以便OnGetMinMaxInfo()使用
  m_FullScreenWindowRect = rectDesktop;

  wpNew = m_wpPrev;
  wpNew.showCmd = SW_SHOWNORMAL;
  wpNew.rcNormalPosition = rectDesktop;

  //生成新的工具条
  m_wndFullScreenBar=new CToolBar;

  if(!m_wndFullScreenBar->Create(this, CBRS_SIZE_DYNAMIC|CBRS_FLOATING)
  || !m_wndFullScreenBar->LoadToolBar(IDR_FULLSCREEN))
  {
  TRACE0("Failed to create toolbar\n");
  return; // fail to create
  }



  //不允许工具条停泊
  m_wndFullScreenBar->EnableDocking(FALSE);
  m_wndFullScreenBar->SetWindowPos(0,100,100,0,0,SWP_NOSIZE
  |SWP_NOZORDER|SWP_NOACTIVATE|SWP_SHOWWINDOW);
  m_wndFullScreenBar

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Glib实例学习(2)双链表
      • C程序员要学C++吗?
      • C++中实现Singleton的正确方法
      • 编程思维训练(一)
      • 【编程好习惯】引入中间变量使程序更易读
      • 在C++中通过模板规避潜在错误
      • 在C++中通过模板去除强制转换
      • 【编程好习惯】减少搜索头文件的目录数
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1