win10 我的电脑win10电脑F11为什么不是把窗口切换为全屏

2125人阅读
C++ MFC API(60)
&下面介绍2种方法 实现 F11 全屏切换窗体& ......&&
&相关函数& 介绍
&RepositionBars(0, AFX_IDW_PANE_FIRST, AFX_IDW_PANE_LAST, reposQuery , &enableClient);&& //这个函数重新摆放控件 ,并且根据参数 reposQuery& 获得窗体客户区矩形
&MoveWindow& 移动窗体
&SetWindowPlacement 设置窗体位置&
&GetWindowPlacement 获得窗体位置信息函数&& 具体MSDN
&WINDOWPLACEMENT& 结构体保存窗体位置信息
&ClientToScreen& 客户坐标到屏幕坐标的映射
&GetSystemMetrics(SM_CXSCREEN);
&GetSystemMetrics(SM_CYSCREEN);& 获得屏幕宽和高&&
&OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)&& 消息响应函数 设置最窗体追踪高度&
&下面是主要代码& 工程我打包传道MSDN& 0积分下载&&&
&& 在MDI中的 VIEW类 增加&& 键盘按下响应&&&&
&& 增加成员变量&BOOL bFullS
&& 在构造函数中初始化为 FALSE&
&void CF11View::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
&&& if(nChar==VK_F11)
&&&&&& if(this-&bFullScreen==FALSE)
&&&&&&&&&&&&&&&&& ((CMainFrame*)AfxGetApp()-&m_pMainWnd)-&SetFullScreen();&& //调用全屏函数
&&& this-&bFullScreen=TRUE;
&&&&&& else
&&&& ((CMainFrame*)AfxGetApp()-&m_pMainWnd)-&EndFullScreen();& //退出全屏
&&&& this-&bFullScreen=FALSE;
2.在 CMainFrame类增加成员 如下
&&&&&&&&&&& &WINDOWPLACEMENT oldI&
& 增加 3个函数 如下
&&& //设置全屏显示
&&& void CMainFrame::SetFullScreen()
&&& &int cx& = GetSystemMetrics(SM_CXSCREEN);
&int cy = GetSystemMetrics(SM_CYSCREEN);
&&& GetWindowPlacement(&oldInfo);& //获得原先窗体的位置信息&&&
&CRect winRect& ,enableC
&GetWindowRect(&winRect); //获得相对于屏幕的窗体的矩形区域
&&& RepositionBars(0, AFX_IDW_PANE_FIRST, AFX_IDW_PANE_LAST, reposQuery , &enableClient);& //reposQuery这个参数对应后面的CRect对象获取客户区域
&//1:CRect newP&& //新位置&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //为了获取可用区域也就是客户区域大小
&&& RECT newP&& //新位置
&ClientToScreen(&enableClient); //转换屏幕坐标
&newPos.left=winRect.left-enableClient.left& ;//窗体包括边界 - 内部客户区域& 刚好吧边界去掉
&newPos.right=winRect.right-enableClient.right+
&newPos.top=winRect.top-enableClient. //顶部也是用客户区域& -窗体& 负坐标刚好是便捷的长度
&newPos.bottom=winRect.bottom-enableClient.bottom+ //下边框的高度 +& 屏幕坐标
&//方法1: MoveWindow(newPos.left,newPos.top,newPos.Width(),newPos.Height());& //最大化
&&&& &WINDOWPLACEMENT&
&&wp.length=sizeof(WINDOWPLACEMENT);
&&wp.flags=0;&& //参数 0
&&wp.rcNormalPosition=newP //新位置
&&wp.showCmd=SW_SHOWNORMAL;//正常显示
&&::SetWindowPlacement(this-&m_hWnd,&wp); //设置窗体位置 方法2
&& //退出全屏显示
&& void CMainFrame::EndFullScreen()
&SetWindowPlacement(&oldInfo); //恢复原来位置
&&& //这是个消息响应函数 用来设置窗体追踪的最大高度
&& void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
&&&&&& lpMMI-&ptMaxTrackSize.y =10000;&&& //设置最大的窗体追踪高度
&CMDIFrameWnd::OnGetMinMaxInfo(lpMMI);
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1035793次
积分:14451
积分:14451
排名:第942名
原创:333篇
转载:110篇
评论:151条
难度:初级
类型:技术教程
难度:高级
类型:实战教学
我是一枚来自于中国山东烟台的程序猿!
未来几年目标成为一个优秀的开发者 !
(?o??o?)??
文章:15篇
阅读:61938
阅读:23922
文章:12篇
阅读:30375win10此电脑下文件夹或桌面文件夹打开之后经常是最小化状态,切换不到全屏,怎么回事?_百度知道
win10此电脑下文件夹或桌面文件夹打开之后经常是最小化状态,切换不到全屏,怎么回事?
我有更好的答案
你拉大一下,下次就记录了,要不每次都是小的,要拉大,不是点击最大化
不是拉大拉小的原因,直接不显示全屏,文件夹打开之后只在任务栏显示图标。。。
为您推荐:
其他类似问题
桌面文件夹的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 win10显示我的电脑 的文章

 

随机推荐