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

  • 相关阅读:
    poj1047
    poj1129
    poj1050
    C#中break、continue的用法
    关于一个不大常用的SQL数据类型-UNIQUEIDENTIFIER
    关于net2.0里面新出现的类backgroundworker的应用
    深入讲解SQL Union和Union All的使用方法
    让你一次性搞定堆、栈、值类型、引用类型 (转载)
    EXEC与sp_executesql的区别及应用(转)
    几种常用排序算法总结(转载)
  • 原文地址:https://www.cnblogs.com/mazhenyu/p/831389.html
Copyright © 2011-2022 走看看