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);
    }

  • 相关阅读:
    how to uninstall devkit
    asp.net中bin目录下的 dll.refresh文件
    查找2个分支的共同父节点
    Three ways to do WCF instance management
    WCF Concurrency (Single, Multiple, and Reentrant) and Throttling
    检查string是否为double
    How to hide TabPage from TabControl
    获取当前系统中的时区
    git svn cygwin_exception
    lodoop打印控制具体解释
  • 原文地址:https://www.cnblogs.com/mazhenyu/p/831389.html
Copyright © 2011-2022 走看看