【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《MFC实现全屏功能的代码》,欢迎阅读!
很多的播放器都有快捷键控制窗口以全屏幕的方式显示。给应用程序加上全屏幕的功能,并不需要很多的代码,比如给一个基于对话框的应用程序加上全屏功能只需要以下少量代码就可以工作了。
void CFullScreenDlg::FullScreenView(void) {
CRect rectDesktop;
WINDOWPLACEMENT wpNew; if (!IsFullScreen()) {
// We'll need these to restore the original state. GetWindowPlacement (&m_wpPrev); //Adjust RECT to new size of window
::GetWindowRect ( ::GetDesktopWindow(), rectDesktop );
::AdjustWindowRectEx(rectDesktop, GetStyle(), FALSE, GetExStyle()); // Remember this for OnGetMinMaxInfo() m_rcFullScreenRect = rectDesktop; wpNew = m_wpPrev;
wpNew.showCmd = SW_SHOWNORMAL; wpNew.rcNormalPosition = rectDesktop; m_bFullScreen=true; } else {
// 退出全屏幕时恢复到原来的窗口状态 m_bFullScreen=false; wpNew = m_wpPrev; }
SetWindowPlacement ( &wpNew ); }
void CFullScreenDlg::OnGetMinMaxInfo(MINMAXINFO* lpMMI) {
// TODO: Add your message handler code here and/or call default if (IsFullScreen()) {
lpMMI->ptMaxSize.y = m_rcFullScreenRect.Height(); lpMMI->ptMaxTrackSize.y = lpMMI->ptMaxSize.y; lpMMI->ptMaxSize.x = m_rcFullScreenRect.Width(); lpMMI->ptMaxTrackSize.x = lpMMI->ptMaxSize.x; }
CDialog::OnGetMinMaxInfo(lpMMI); }
bool CFullScreenDlg::IsFullScreen(void) {
// 记录窗口当前是否处于全屏状态 return m_bFullScreen; }
另外要在头文件中增加下列代码: public: void FullScreenView();//全屏显示函数 BOOL IsFullScreen();//记录当前窗口是否处于全屏状态 WINDOWPLACEMENT m_wpPrev; BOOL m_bFullScreen; CRect m_rcFullScreenRect;
afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI);
本文来源:https://www.wddqxz.cn/627b8f3b580216fc700afdf9.html