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

zcvbgdaty

zcvbgdaty

2016-01-29 11:53

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

在MFC程序中添加全屏显示功能
来源:MSDN 翻译整理:冰点工作室 小鹰

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/)

下载本文示例源代码

这是工作室为实现全屏显示所发集的一个演示程序。你可以通过选择全屏显示菜单选项时看到相应的效果。这段代码包括两个内容:全屏显示,浮动工具条(用于恢复操作)。

下图便是全屏状态和用于切换的浮动工具条


具体实现步骤:

以下的代码被添加到CmainFrame类中。这里是使用到的四个消息以及他们的简要说明:
1. OnViewFullScreen:全屏显示菜单项的句柄。
2. OnGetMinMaxInfo:捕获 WM_GETMINMAXINFO消息来让你改变窗体大小。
3. IsFullScreen:测试程序是否是以全屏模式显示。
4. OnUpdateViewFullScreen:根据程序模式显示选中或不选中全屏显示菜单项。

主要代码举例:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/)
void CMainFrame::OnViewFullScreen() {RECT rectDesktop;    WINDOWPLACEMENT wpNew;    if (!IsFullScreen())    {        // 需要所有状态栏        m_wndStatusBar.ShowWindow(SW_HIDE);    m_wndToolBar.ShowWindow(SW_HIDE);    // 还需要恢复原状    GetWindowPlacement (&m_wpPrev);    m_wpPrev.length = sizeof m_wpPrev;        //通过调节RECT 来确定新窗口的大小    ::GetWindowRect ( ::GetDesktopWindow(), &rectDesktop );    ::AdjustWindowRectEx(&rectDesktop, GetStyle(), TRUE, GetExStyle());    // 把参数用于 OnGetMinMaxInfo()    m_FullScreenWindowRect = rectDesktop;                wpNew = m_wpPrev;        wpNew.showCmd =  SW_SHOWNORMAL;    wpNew.rcNormalPosition = rectDesktop;            // 创建新的工具栏         m_pwndFullScrnBar=new CToolBar;         if (!m_pwndFullScrnBar->Create(this,CBRS_SIZE_DYNAMIC|CBRS_FLOATING) ||    !m_pwndFullScrnBar->LoadToolBar(IDR_FULLSCREEN))        {        TRACE0("Failed to create toolbarn");    return;      //创建失败        }                 //不允许工具栏停靠         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;         //恢复窗体         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;    }   }
//测试窗体状态
BOOL CMainFrame::IsFullScreen(){     return m_bFullScreen;}
//是否选中菜单
void CMainFrame::OnUpdateViewFullScreen(CCmdUI* pCmdUI) {pCmdUI->Enable();if (IsFullScreen())pCmdUI->SetCheck();else        pCmdUI->SetCheck(0);}
(全文完)
展开更多 50%)
分享

猜你喜欢

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

C语言教程 C语言函数
在MFC程序中添加全屏显示功能

在非MFC程序中引用CString

C语言教程 C语言函数
在非MFC程序中引用CString

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

让VB在程序中显示错误行

编程语言 网络编程
让VB在程序中显示错误行

VC中利用MFC设计绘图程序初步

编程语言 网络编程
VC中利用MFC设计绘图程序初步

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

谈static在MFC中的运用

编程语言 网络编程
谈static在MFC中的运用

为Java程序中添加播放MIDI音乐功能

编程语言 网络编程
为Java程序中添加播放MIDI音乐功能

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

用好超级链接标记—A

用好超级链接标记—A

批量消除超链接虚线框

批量消除超链接虚线框
下拉加载更多内容 ↓