在VC中实现全屏窗口程序

全屏显示是一些应用软件程序必不可少的功能。比如在用VC++编辑工程源文件或编辑对话框等资源时,选择菜单“ViewFull Screen”,即可进入全屏显示状态,按“Esc”键后会退出全屏显示状态。

在VC++6.0中我们用AppWizard按默认方式生成单文档界面的应用程序框架。下面将先讨论点击菜单项“ViewFull Screen”实现全屏显示的方法,再讲述按“Esc”键后如何退出全屏显示状态。

1) 在CMainFrame类中,增加如下三个成员变量。

Class CMainFrame : public CFrameWnd

{ private: //自己添加的三个成员变量

WINDOWPLACEMENT m_OldWndPlacement; //用来保存原窗口位置

BOOL m_bFullScreen; //全屏显示标志

Crect m_FullScreenRect; //表示全屏显示时的窗口位置

protected: CMainFrame();

DECLARE_DYNCREATE(CMainFrame)}

2)在资源编辑器中编辑菜单IDR_MAINFRAME。在“View”菜单栏下添加菜单项“Full Screen”。在其属性框中,ID设置为ID_FULL_SCREEN,Caption为“Full Screen”。还可以在工具栏中添加新的工具图标,并使之与菜单项“Full Screen”相关联,即将其ID值也设置为ID_FULL_SCREEN。

3)设计全屏显示处理函数,在CMainFrame类增加上述菜单项ID_FULL_SCREEN消息的响应函数。响应函数如下:

void CMainFrame::OnFullScreen()
{GetWindowPlacement(&m_OldWndPlacement);
Crect WindowRect;
GetWindowRect(&WindowRect);
Crect ClientRect;
RepositionBars(0, 0xffff, AFX_IDW_PANE_FIRST, reposQuery, &ClientRect);
ClientToScreen(&ClientRect);
// 获取屏幕的分辨率
int nFullWidth=GetSystemMetrics(SM_CXSCREEN);
int nFullHeight=GetSystemMetrics(SM_CYSCREEN);
// 将除控制条外的客户区全屏显示到从(0,0)到(nFullWidth, nFullHeight)区域, 将(0,0)和(nFullWidth, nFullHeight)两个点外扩充原窗口和除控制条之外的 客户区位置间的差值, 就得到全屏显示的窗口位置
m_FullScreenRect.left=WindowRect.left-ClientRect.left;
m_FullScreenRect.top=WindowRect.top-ClientRect.top;
m_FullScreenRect.right=WindowRect.right-ClientRect.right+nFullWidth;
m_FullScreenRect.bottom=WindowRect.bottom-ClientRect.bottom+nFullHeight;
m_bFullScreen=TRUE; // 设置全屏显示标志为 TRUE
// 进入全屏显示状态
WINDOWPLACEMENT wndpl;
wndpl.length=sizeof(WINDOWPLACEMENT);
wndpl.flags=0;
wndpl.showCmd=SW_SHOWNORMAL;
wndpl.rcNormalPosition=m_FullScreenRect;
SetWindowPlacement(&wndpl);}

时间: 2024-11-02 02:18:56

在VC中实现全屏窗口程序的相关文章

Flash中开启全屏的窗口

难度: 中级软件环境: Flash 4 or 5, NS or IE 4 or higher. 我们在这个例子中有很多的需求,但是我不是一个JAVACSCRIPT程序员,所以我请人在网页中实现这一效果.大多数人觉得全屏很烦人,所以我们总结出一条经验:决不 在大家不需要全屏的时候实现它,因为这样做很烦人,不是吗?那好,我们继续. 我们要将这些代码拷贝粘贴到我们的HTML文件中.我对这段代码做了细微的改动以允许我们实现这一功能. 我接到的许多邮件中经常包含以下两个常见的错误: 在FLASH中发布HT

Android中实现全屏、无标题栏的两种办法(另附Android系统自带样式的解释)

原文:Android中实现全屏.无标题栏的两种办法(另附Android系统自带样式的解释) 在进行UI设计时,我们经常需要将屏幕设置成无标题栏或者全屏.要实现起来也非常简单,主要有两种方法:配置xml文件和编写代码设置. 1.在xml文件中进行配置 在项目的清单文件AndroidManifest.xml中,找到需要全屏或设置成无标题栏的Activity,在该Activity进行如下配置即可. 实现全屏效果: android:theme="@android:style/Theme.NoTitleB

windows编程 全屏窗口的创建总结 .

from:http://blog.csdn.net/leolee82/article/details/6992615 windows编程 全屏窗口的创建总结第一种:较简单的方法在ShowWindow(hwnd,SW_SHOWNORMAL);UpdateWindow(hwnd);前加如下代码: [cpp] view plaincopyprint? LONG style = GetWindowLong(hwnd,GWL_STYLE);//获得窗口风格    style = &~WS_CAPTION 

按钮打开全屏窗口

按钮打开全屏窗口 下面框中为脚本显示区  

背水一战 Windows 10 (3) - UI: 窗口全屏, 窗口尺寸

原文:背水一战 Windows 10 (3) - UI: 窗口全屏, 窗口尺寸 [源码下载] 背水一战 Windows 10 (3) - UI: 窗口全屏, 窗口尺寸 作者:webabcd 介绍背水一战 Windows 10 之 UI 窗口全屏 窗口尺寸 示例1.窗口全屏UI/FullScreen.xaml <Page x:Class="Windows10.UI.FullScreen" xmlns="http://schemas.microsoft.com/winfx/

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

这是工作室为实现全屏显示所发集的一个演示程序.你可以通过选择全屏显示菜单选项时看到相应的效果.这段代码包括两个内容:全屏显示,浮动工具条(用于恢复操作). 下图便是全屏状态和用于切换的浮动工具条 具体实现步骤: 以下的代码被添加到CmainFrame类中.这里是使用到的四个消息以及他们的简要说明: 1.OnViewFullScreen:全屏显示菜单项的句柄. 2.OnGetMinMaxInfo:捕获 WM_GETMINMAXINFO消息来让你改变窗体大小. 3.IsFullScreen:测试程序

实现浏览器全屏窗口的几种方法

IE 浏览器隐身 浏览网页,时常会发现自己的浏览器窗口不见了,但网页内容还在.这种效果是不是很神奇呢?实现此种功能只要有三种原理,按实现方法的不同,给它们各起了个名字,分别是:瞒天过海法.借尸还魂法和返璞归真法.不要被它们的名字吓着了,其实实现起来并不困难,只要看了下面的内容,就明白个中道理了! 一.瞒天过海法-javascript 我们知道,显示器的分辩率大小决定了我们看到的程序窗口的面积大小,分辩率越大,窗口面积越大,看到的内容就越多.但并不是说显示面积越大就越好,因为分辩率的变化会带来菜单

Directx11教程(12) 禁止alt+enter全屏窗口

       在D3D11应用程序中,我们按下alt+enter键,会切换到全屏模式.有时候,我们在WM_SIZE中有一些代码,全屏时,会使得程序崩溃,比如之前教程的代码,就是如此.      下面我们在D3DClass.cpp 中,增加代码,禁止alt+enter键全屏.有两种方法可以做到这个功能,下面我们分别贴出代码: 第一种方法:     D3DClass.cpp中修改Initialize函数,调用MakeWindowAssociation时候,使用SwapChain的内部接口工厂. 注意

【android入门】之Android中设置全屏的方法

在实际的应用程序开发中,我们有时需要把 Activity 设置成全屏显示,一般情况下,可以通过两种方式来设置全屏显示效果.其一,通过在代码中可以设置,其二,通过manifest配置文件来设置全屏.       其一:在代码中设置(如下) view plaincopy to clipboardprint? public void onCreate(Bundle savedInstanceState) {           super.onCreate(savedInstanceState);