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

#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. 视频运行库AVICAP32.DLL说明收藏

    视频运行库AVICAP32.DLL说明收藏2008-09-28 09:04 // ----------------------------------------------------------- ...

  2. 采用web service传输超大数据

    因为以前也没有做过相关的web service开发,对于Xfire也只是知道有这么一个框架.当然现在它已经变成apache基金会旗下的一个开源项目CXF.不过,现在依旧有很多公司还在用Xfire作we ...

  3. JQuery中简约的进度条插件推荐

    JQuery Progress Bar是基于JQuery开发的进度条插件,秉承了JQuery的简约哲学.不仅容易使用,而且可以轻松定制外观.对于使用了JQuery框架的项目来说,需要使用进度条控件时这 ...

  4. Microsoft Visual C++ 14.0 is required问题的解决或warning: Debugger speedups using cython not found

    今天在下载了 python3.64版本的安装后运行爬虫程序报错: warning: Debugger speedups using cython not found. Run '"C:\Py ...

  5. Python socket – network programming tutorial

    原文:https://www.binarytides.com/python-socket-programming-tutorial/ --------------------------------- ...

  6. Android通过反射打造能够存储不论什么对象的万能SharedPreferences

    我们通常使用SharedPreferences存储一些须要保存在本地.但又不至于存储在数据库里的一些数据.一般我们用它来存储一些username,password等数据是很方便的,那么假设我们想要存储 ...

  7. 国内站点经常使用的一些 CDN 静态资源公共库加速服务

    web开发人员们的福利来了..旨在为大家提供更快很多其它更好的静态资源库的CDN载入库方案! CDN公共库是指将经常使用的JS库存放在CDN节点,以方便广大开发人员直接调用. 与将JS库存放在serv ...

  8. Android反编译方法(class+xml)

    ps:对于软件开发人员来说,保护代码安全也是比较重要的因素之一,不过目前来说Google Android平台选择了Java Dalvik VM的方式使其程序很容易破解和被修改,首先APK文件其实就是一 ...

  9. 矩阵的frobenius范数及其求偏导法则

    例子: http://www.mathchina.net/dvbbs/dispbbs.asp?boardid=4&Id=3673

  10. div浏览器兼容问题

    1. 默认的内外边距不同 问题: 各个浏览器默认的内外边距不同 解决: *{margin:0;padding:0;} 2. 水平居中的问题 问题: 设置 text-align: center ie6- ...