游戏开发中经常使用会让游戏以全屏窗口的状态运行,下面一个例子就是来实现这个效果的。

#include <windows.h>

void RegisterMyClass();
LRESULT CALLBACK MainWndProc(HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam); int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// 注册窗口类
RegisterMyClass(); // 创建窗口
HWND hwnd = CreateWindow(
TEXT("MainWindow"), // 类名
L"我的应用程序", // 窗口标题文字
WS_POPUP, // 窗口外观样式
, //38, // 窗口相对于父级的x坐标
, //20, // 窗口相对于父级的y坐标 GetSystemMetrics (SM_CXSCREEN):获取屏幕宽度
GetSystemMetrics(SM_CXSCREEN), //480, // 窗口的宽度 GetSystemMetrics(SM_CYSCREEN):获取屏幕高度
GetSystemMetrics(SM_CYSCREEN), //250, // 窗口的高度
NULL, // 没有父窗口
NULL, // 没有菜单
hInstance, // 当前应用程序的实例句柄
NULL); // 没有附加数据 if (hwnd == NULL)
{
return ;
} // 显示窗口
ShowWindow(hwnd, SW_NORMAL); // 更新窗口
UpdateWindow(hwnd); // 消息循环
MSG msg;
while (GetMessage(&msg, NULL, , ))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
} return ;
} void RegisterMyClass()
{
WNDCLASS wc; wc.lpszClassName = TEXT("MainWindow");
wc.lpfnWndProc = MainWndProc;
wc.style = CS_OWNDC | CS_VREDRAW | CS_HREDRAW;
wc.hInstance = NULL;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
/*
白色画刷 (HBRUSH)(COLOR_WINDOW + 1);
黑色画刷
*/
wc.hbrBackground = (HBRUSH)(GetStockObject(BLACK_BRUSH));
wc.lpszMenuName = TEXT("FirstWin32");
wc.cbClsExtra = ;
wc.cbWndExtra = ; RegisterClass(&wc);
} LRESULT CALLBACK MainWndProc(HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
switch (uMsg)
{
case WM_PAINT:
break;
case WM_DESTROY:
PostQuitMessage(uMsg);
break;
default:
return DefWindowProc(hwnd, uMsg, wParam, lParam);
break;
}
}

其中最主要的就是红色的地方,第一个是设置窗口样式为弹出窗口,虽然没搞明白为什么使用弹出窗口可以实现全屏,但是总归是实现了,回头仔细看看API。

后面是设置窗口的宽度和高度,分别设置为屏幕的宽度和高度即可。

win32编程就是舒服,真正的刺刀见红的快感,刀刀见肉,不像mfc那样,不知道框架自己做了些什么。

win32之全屏窗口的更多相关文章

  1. UI: 窗口全屏, 窗口尺寸

    窗口全屏 窗口尺寸 示例1.窗口全屏UI/FullScreen.xaml <Page x:Class="Windows10.UI.FullScreen" xmlns=&quo ...

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

    [源码下载] 背水一战 Windows 10 (3) - UI: 窗口全屏, 窗口尺寸 作者:webabcd 介绍背水一战 Windows 10 之 UI 窗口全屏 窗口尺寸 示例1.窗口全屏UI/F ...

  3. OSG addEventHandler W键显示网格 L键控制光照 F键切换全屏窗口 S键显示统计数据 事件处理器

    #include <osgGA/StateSetManipulator> #include <osgViewer/ViewerEventHandlers> // add the ...

  4. OpenGL 使用GLFW创建全屏窗口

    OpenGL 使用GLFW创建全屏窗口 GLFW库里面的glfwCreateWindow()函数是用来创建窗口的函数. 这样函数的原型是: GLFWwindow* glfwCreateWindow(i ...

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

    原文:Directx11教程(12) 禁止alt+enter全屏窗口        在D3D11应用程序中,我们按下alt+enter键,会切换到全屏模式.有时候,我们在WM_SIZE中有一些代码,全 ...

  6. OSG 初始化为非全屏窗口

    OSG默认的窗口时全屏的,调试的时候不方便. 在网上看到一段代码,可以非全屏显示 int _tmain(int argc, _TCHAR* argv[]){ osgViewer::Viewer vie ...

  7. window.open 打开全屏窗口

    window.open新打开页面为全屏状态,各个浏览器情况不一致. window.open   弹出新窗口的命令:     'page.html'   弹出窗口的文件名:     'newwindow ...

  8. Mac的Parallels在启动Win的时候让它独立全屏窗口

    这里备忘一下,由于经常需要***,Win方法比较多少,所以使用Parallels在Win下***还是很有必要的,为了使用使用方便,一般让Parallels启动系统之后自动生成一个独立的全窗口,方便来回 ...

  9. js控制全屏窗口

    <script src="__PUBLIC__/Js/jquery.min.js"></script> <script type="text ...

随机推荐

  1. 漏洞预警 | ECShop全系列版本远程代码执行高危漏洞

    2018年9月1日,阿里云态势感知发布预警,近日利用ECShop全系列版本的远程代码执行漏洞进行批量化攻击量呈上升趋势.该漏洞利用简单且危害较大,黑客可通过WEB攻击直接获得服务器权限. 漏洞原理 该 ...

  2. jQuery过滤选择器:not()方法介绍

    jQuery(':not(selector)') 在jQuery的早期版本中,:not()筛选器只支持简单的选择器,说明我们传入到:not这个filter中的selector可以任意复杂,比如:not ...

  3. 【Python】Django RestFramework资料

    A ReSTful API is becoming a standard component of any modern web application.  The Django Rest Frame ...

  4. 【云计算】Docker 镜像如何设置语言环境?bash: warning: setlocale: LC_ALL: cannot change locale (en_US)

    解决方案: # set default language environment RUN locale-gen en_US.UTF- \ && dpkg-reconfigure loc ...

  5. Win下执行Swing程序的BAT文件 和 Linux下执行Swing程序的SH文件

    BAT文件: @echo off set CLASSPATH_BAK=%CLASSPATH% set classpath=%CLASSPATH%;.\lib\commons-codec-1.3.jar ...

  6. NCBI SRA数据预处理

    SRA数据的的处理流程大概如下 一.SRA数据下载. NCBI 上存储的数据现在大都存储为SRA格式. 下载以后就是以SRA为后缀名. 这里可以通过三种方式下载SRA格式的数据. 1.通过http方式 ...

  7. 设计模式 - 模板方法模式(template method pattern) 具体解释

    模板方法模式(template method pattern) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy 模板方法模式(template metho ...

  8. selenium webdriver 的三种等待方式

    1.显式等待 一个显式等待是你定义的一段代码,用于等待某个条件发生然后再继续执行后续代码. from selenium import webdriver from selenium.webdriver ...

  9. UML学习(二)- 用例图

    UML用例图      用例图主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即用户希望系统具备的完成一定功能的动作,通俗地理解用例就是软件的功能模块,所以是设计系统分析阶段的起点,设计人员 ...

  10. AI的分支学科

    AI 的分支学科 [References]AAI(Advanced Artificial Intelligence)