zoukankan      html  css  js  c++  java
  • 怎样实现全屏显示(vc)

    源代码如下:
    void CMainFrame::SetFullScreenMode(BOOL bFullMode) // 全屏显示
    {
     if(bFullMode == m_bFullScreenMode)// 当前状态已经是全屏或非全屏状态,直接返回
      return;
     //m_bToolBarWasVisible = (m_wndToolBar.IsWindowVisible() != 0);
     //m_wndToolBar.ShowWindow(!bFullMode);
     m_bStatisBarWasVisible = (m_wndStatusBar.IsWindowVisible() != 0);
     m_wndStatusBar.ShowWindow(!bFullMode);
     // 保存窗口位置
     if(bFullMode)
      GetWindowRect(&m_MainRect);
     else 
      MoveWindow(m_MainRect);  
     
     // 移走或添加主窗口的标题
     LONG style = ::GetWindowLong(m_hWnd,GWL_STYLE);
     if(bFullMode)
      style &= ~WS_CAPTION;
     else
      style |= WS_CAPTION;
     ::SetWindowLong(m_hWnd,GWL_STYLE,style);
     int cxScreen = GetSystemMetrics(SM_CXSCREEN);
     int cyScreen = GetSystemMetrics(SM_CYSCREEN);
     
     if(bFullMode)
     { //设置窗口位置
      SetWindowPos(NULL,-2,-2,cxScreen,cyScreen,SWP_NOZORDER);
      // 保存最初的菜单,并设置菜单为 NULL
      ASSERT(m_OrgMenu.GetSafeHmenu() == NULL);
      CMenu *pOldMenu = GetMenu();
      m_OrgMenu.Attach(pOldMenu->Detach());
      SetMenu((CMenu*)NULL);

      // 右侧控制面板
      m_wndMyBar1.ShowWindow(SW_HIDE);
      m_TabCtrl.ShowWindow(SW_HIDE);

     }
     else
     {
      ASSERT(m_OrgMenu.GetSafeHmenu() != NULL);
      SetMenu(&m_OrgMenu);
      m_OrgMenu.Detach();

      // 右侧控制面板
      m_wndMyBar1.ShowWindow(SW_SHOW);
      m_TabCtrl.ShowWindow(SW_SHOW);
     }

     // 窗口所有控件重排
     RecalcLayout();

     m_bFullScreenMode = bFullMode;
    }

    在View中调用
    void CNiKoView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
    {
     // TODO: Add your message handler code here and/or call default
     if(nChar == 'F' || nChar == 'f' || nChar == VK_ESCAPE)
     {// 全屏显示控制
      CMainFrame *pFrame = (CMainFrame*)AfxGetMainWnd();
      if(nChar == 'F' || nChar == 'f' )
       pFrame->SetFullScreenMode(TRUE);
      else
       pFrame->SetFullScreenMode(FALSE);
     }

     CView::OnChar(nChar, nRepCnt, nFlags);
    }

  • 相关阅读:
    apt-clone安装与使用
    利用异或求(整数数组中,有2K+1个数,其中有2k个相同,找出不相同的那个数)
    运行程序,填写结果
    throw与throws的区别
    牛客网多线程程序执行结果选择题
    一个继承了抽象类的普通类的执行顺序
    int i=0;i=i++
    HashMap浅入理解
    &&和&、||和|的区别
    System.out.println()
  • 原文地址:https://www.cnblogs.com/mazhenyu/p/831389.html
Copyright © 2011-2022 走看看