• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴(yán)以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            在MFC程序中添加全屏顯示功能

            來源:MSDN 翻譯整理:冰點(diǎn)工作室 小鷹

            下載本文示例源代碼

            這是工作室為實(shí)現(xiàn)全屏顯示所發(fā)集的一個(gè)演示程序。你可以通過選擇全屏顯示菜單選項(xiàng)時(shí)看到相應(yīng)的效果。這段代碼包括兩個(gè)內(nèi)容:全屏顯示,浮動(dòng)工具條(用于恢復(fù)操作)。

            下圖便是全屏狀態(tài)和用于切換的浮動(dòng)工具條


            具體實(shí)現(xiàn)步驟:

            以下的代碼被添加到CmainFrame類中。這里是使用到的四個(gè)消息以及他們的簡要說明:
            1. OnViewFullScreen:全屏顯示菜單項(xiàng)的句柄。
            2. OnGetMinMaxInfo:捕獲 WM_GETMINMAXINFO消息來讓你改變窗體大小。
            3. IsFullScreen:測試程序是否是以全屏模式顯示。
            4. OnUpdateViewFullScreen:根據(jù)程序模式顯示選中或不選中全屏顯示菜單項(xiàng)。

            主要代碼舉例:

            void CMainFrame::OnViewFullScreen() 
            {
            	RECT rectDesktop;
                WINDOWPLACEMENT wpNew;
            
                if (!IsFullScreen())
                {
                    // 需要所有狀態(tài)欄
                    m_wndStatusBar.ShowWindow(SW_HIDE);
            	    m_wndToolBar.ShowWindow(SW_HIDE);
            
            	    // 還需要恢復(fù)原狀
            	    GetWindowPlacement (&m_wpPrev);
            
            	    m_wpPrev.length = sizeof m_wpPrev;
            
                    //通過調(diào)節(jié)RECT 來確定新窗口的大小
            	    ::GetWindowRect ( ::GetDesktopWindow(), &rectDesktop );
            	    ::AdjustWindowRectEx(&rectDesktop, GetStyle(), TRUE, GetExStyle());
            
            	    // 把參數(shù)用于 OnGetMinMaxInfo()
            	    m_FullScreenWindowRect = rectDesktop;
                    
                    wpNew = m_wpPrev;
                    wpNew.showCmd =  SW_SHOWNORMAL;
            	    wpNew.rcNormalPosition = rectDesktop;
            	    
                    // 創(chuàng)建新的工具欄
                     m_pwndFullScrnBar=new CToolBar;
            
                     if (!m_pwndFullScrnBar->Create(this,CBRS_SIZE_DYNAMIC|CBRS_FLOATING) ||
            		    !m_pwndFullScrnBar->LoadToolBar(IDR_FULLSCREEN))
                	    {
            	    	    TRACE0("Failed to create toolbar\n");
            			    return;      //創(chuàng)建失敗
            	        }
                    
                     //不允許工具欄???
                     m_pwndFullScrnBar->EnableDocking(0);
            		 m_pwndFullScrnBar->SetWindowPos(0, 100,100, 0,0,SWP_NOSIZE|SWP_NOZORDER| SWP_NOACTIVATE|SWP_SHOWWINDOW);   
            		 m_pwndFullScrnBar->SetWindowText(_T("Full Screen"));
            	     FloatControlBar(m_pwndFullScrnBar, CPoint(100,100));
            		 m_bFullScreen=TRUE;
                }
                else
                {
                     m_pwndFullScrnBar->DestroyWindow();
            		 delete m_pwndFullScrnBar;
            
                     m_bFullScreen=FALSE;
                     //恢復(fù)窗體
                     m_wndStatusBar.ShowWindow(SW_SHOWNORMAL);
            	     m_wndToolBar.ShowWindow(SW_SHOWNORMAL);
                     wpNew = m_wpPrev;
                 }
                
                 SetWindowPlacement ( &wpNew );
            	    
            }

            //改變窗體大小
            void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) 
            {
            	if (IsFullScreen())
                {
                    lpMMI->ptMaxSize.y = m_FullScreenWindowRect.Height();
            	    lpMMI->ptMaxTrackSize.y = lpMMI->ptMaxSize.y;
            	    lpMMI->ptMaxSize.x = m_FullScreenWindowRect.Width();
            	    lpMMI->ptMaxTrackSize.x = lpMMI->ptMaxSize.x;
                }
               
            }
            //測試窗體狀態(tài)
            BOOL CMainFrame::IsFullScreen()
            {
                 return m_bFullScreen;
            }
            //是否選中菜單
            void CMainFrame::OnUpdateViewFullScreen(CCmdUI* pCmdUI) 
            {
            	pCmdUI->Enable();
            
            	if (IsFullScreen())
            		pCmdUI->SetCheck();
            	else
                    pCmdUI->SetCheck(0);
            
            }
            
            (全文完)

            posted on 2006-06-22 17:10 楊粼波 閱讀(458) 評論(0)  編輯 收藏 引用 所屬分類: 文章收藏

            三上悠亚久久精品| 久久九色综合九色99伊人| 一本色道久久88加勒比—综合| 久久久久久精品无码人妻| 久久久WWW成人免费毛片| 狠狠色丁香婷婷久久综合不卡| 久久久久亚洲AV无码网站| 久久大香香蕉国产| 久久久九九有精品国产| 国内精品久久久久久久亚洲| 国产伊人久久| 免费精品久久天干天干| 狠狠综合久久综合88亚洲| 久久综合综合久久综合| 国内精品久久久久影院优| 精品一区二区久久久久久久网站| 91精品无码久久久久久五月天| 国产精品成人久久久久久久| 欧美亚洲另类久久综合婷婷| 少妇熟女久久综合网色欲| 亚洲综合伊人久久综合| 69SEX久久精品国产麻豆| 狠狠色综合久久久久尤物| 亚洲精品WWW久久久久久| 99久久国产综合精品女同图片| 99国产欧美精品久久久蜜芽| 国产综合成人久久大片91| 伊人久久久AV老熟妇色| 亚洲国产精品婷婷久久| 亚洲精品成人网久久久久久| 国产精品无码久久久久久| 欧美激情精品久久久久久久九九九 | 婷婷久久综合九色综合98| 久久精品国产WWW456C0M| 99久久无色码中文字幕人妻| 国产99久久九九精品无码| 亚洲国产精品综合久久一线| 国产91色综合久久免费分享| 一本久久免费视频| 成人精品一区二区久久| 国产精品99久久久精品无码|