We do not always find visible happiness in proportion to visible virtue

梦幻白桦林

SHARE

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  14 Posts :: 58 Stories :: 62 Comments :: 0 Trackbacks

公告

常用链接

留言簿(5)

搜索

  •  

最新随笔

最新评论

阅读排行榜

 全屏

 1 
 2  CMDIChildWnd* pChild=MDIGetActive();
 3  if(!pChild) return;
 4  m_bToolBarWasVisible=(m_wndToolBar.IsWindowVisible()!=0);
 5  m_wndToolBar.ShowWindow(SW_HIDE);//隐藏工具栏
 6  m_bStatusBarWasVisible=(m_wndStatusBar.IsWindowVisible()!=0);
 7  m_wndStatusBar.ShowWindow(SW_HIDE);//隐藏状态栏
 8 
 9  // first create the new toolbar
10  // this will contain the full-screen off button
11  m_pwndFullScreenBar=new CToolBar;
12  m_pwndFullScreenBar->Create(this);
13  m_pwndFullScreenBar->LoadToolBar(IDR_FULLSCREEN);//显示退出全屏工具栏
14  m_pwndFullScreenBar->SetBarStyle(m_pwndFullScreenBar->GetBarStyle() |
15   CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
16  // to look better:
17  m_pwndFullScreenBar->ModifyStyle(0, TBSTYLE_FLAT);
18  m_pwndFullScreenBar->EnableDocking(0);
19 
20  // place the full-screen off button somewhere:
21  CPoint pt(300,200);
22  FloatControlBar(m_pwndFullScreenBar,pt);
23  
24  // now save the old positions of the main and child windows
25  GetWindowRect(&m_mainRect);
26 
27  // remove the caption of the mainWnd:
28  LONG style=::GetWindowLong(m_hWnd,GWL_STYLE);
29  style&=~WS_CAPTION;
30  ::SetWindowLong(m_hWnd,GWL_STYLE,style);
31  int screenx=GetSystemMetrics(SM_CXSCREEN);
32  int screeny=GetSystemMetrics(SM_CYSCREEN);
33 
34  // resize:
35  SetWindowPos(NULL,0,0,screenx,screeny,SWP_NOZORDER);
36  //SetWindowPos(NULL,-5,-5,80,80,SWP_NOZORDER);
37  style=::GetWindowLong(pChild->m_hWnd,GWL_STYLE);
38  m_bChildMax=(style & WS_MAXIMIZE)?true:false;
39  // note here: m_bMainMax is not needed since m_hWnd only
40  // changed its caption
41  ///***************
42 
43  //Save the Original Menu and set menu to NULL
44     ASSERT(m_OrgMenu.GetSafeHmenu()==NULL);
45     CMenu* pOldMenu=GetMenu();
46     m_OrgMenu.Attach(pOldMenu->Detach());
47     SetMenu((CMenu*)NULL);
48 
49  //************
50  // and maximize the child window
51  // it will remove its caption, too.
52   //pChild->
53  this->ShowWindow (SW_SHOWMAXIMIZED);
54  style=::GetWindowLong(pChild->m_hWnd,GWL_STYLE);//获得窗口风格
55  style&=~WS_CAPTION;
56  ::SetWindowLong(pChild->m_hWnd,GWL_STYLE,style); 
57  pChild->ShowWindow(SW_SHOWMAXIMIZED);
58 
59  //RecalcLayout();
60  
61 
62 

退出全屏
 1ASSERT(m_OrgMenu.GetSafeHmenu()!=NULL);
 2    SetMenu(&m_OrgMenu);
 3    m_OrgMenu.Detach();
 4
 5    // You can use SaveBarState() in OnClose(),
 6    // so remove the newly added toolbar entirely
 7    // in order SaveBarState() not
 8    // to save its state. That is why I used dynamic
 9    // allocation
10    delete m_pwndFullScreenBar;
11    LONG style=::GetWindowLong(m_hWnd,GWL_STYLE);
12    style|=WS_CAPTION;
13    ::SetWindowLong(m_hWnd,GWL_STYLE,style);
14    if(m_bToolBarWasVisible)
15        m_wndToolBar.ShowWindow(SW_SHOW);
16    if(m_bStatusBarWasVisible)
17        m_wndStatusBar.ShowWindow(SW_SHOW);
18    MoveWindow(&m_mainRect);
19    RecalcLayout();
20    CMDIChildWnd* pChild=MDIGetActive();
21
22    style=::GetWindowLong(pChild->m_hWnd,GWL_STYLE);
23    style|=WS_CAPTION;
24    ::SetWindowLong(pChild->m_hWnd,GWL_STYLE,style);
25    // pchild can be NULL if the USER closed all the
26    // childs during Full Screen Mode:
27    if(pChild){
28        if(m_bChildMax)
29            MDIMaximize(pChild);
30        else MDIRestore(pChild);
31    }
posted on 2007-05-15 22:48 colys 阅读(1020) 评论(0)  编辑 收藏 引用 所属分类: C++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理