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

  1. #include <windows.h>
  2.  
  3. void RegisterMyClass();
  4. LRESULT CALLBACK MainWndProc(HWND hwnd,
  5. UINT uMsg,
  6. WPARAM wParam,
  7. LPARAM lParam);
  8.  
  9. int WINAPI WinMain(HINSTANCE hInstance,
  10. HINSTANCE hPrevInstance,
  11. LPSTR lpCmdLine,
  12. int nCmdShow)
  13. {
  14. // 注册窗口类
  15. RegisterMyClass();
  16.  
  17. // 创建窗口
  18. HWND hwnd = CreateWindow(
  19. TEXT("MainWindow"), // 类名
  20. L"我的应用程序", // 窗口标题文字
  21. WS_POPUP, // 窗口外观样式
  22. , //38, // 窗口相对于父级的x坐标
  23. , //20, // 窗口相对于父级的y坐标 GetSystemMetrics (SM_CXSCREEN):获取屏幕宽度
  24. GetSystemMetrics(SM_CXSCREEN), //480, // 窗口的宽度 GetSystemMetrics(SM_CYSCREEN):获取屏幕高度
  25. GetSystemMetrics(SM_CYSCREEN), //250, // 窗口的高度
  26. NULL, // 没有父窗口
  27. NULL, // 没有菜单
  28. hInstance, // 当前应用程序的实例句柄
  29. NULL); // 没有附加数据
  30.  
  31. if (hwnd == NULL)
  32. {
  33. return ;
  34. }
  35.  
  36. // 显示窗口
  37. ShowWindow(hwnd, SW_NORMAL);
  38.  
  39. // 更新窗口
  40. UpdateWindow(hwnd);
  41.  
  42. // 消息循环
  43. MSG msg;
  44. while (GetMessage(&msg, NULL, , ))
  45. {
  46. TranslateMessage(&msg);
  47. DispatchMessage(&msg);
  48. }
  49.  
  50. return ;
  51. }
  52.  
  53. void RegisterMyClass()
  54. {
  55. WNDCLASS wc;
  56.  
  57. wc.lpszClassName = TEXT("MainWindow");
  58. wc.lpfnWndProc = MainWndProc;
  59. wc.style = CS_OWNDC | CS_VREDRAW | CS_HREDRAW;
  60. wc.hInstance = NULL;
  61. wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  62. wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  63. /*
  64. 白色画刷 (HBRUSH)(COLOR_WINDOW + 1);
  65. 黑色画刷
  66. */
  67. wc.hbrBackground = (HBRUSH)(GetStockObject(BLACK_BRUSH));
  68. wc.lpszMenuName = TEXT("FirstWin32");
  69. wc.cbClsExtra = ;
  70. wc.cbWndExtra = ;
  71.  
  72. RegisterClass(&wc);
  73. }
  74.  
  75. LRESULT CALLBACK MainWndProc(HWND hwnd,
  76. UINT uMsg,
  77. WPARAM wParam,
  78. LPARAM lParam)
  79. {
  80. switch (uMsg)
  81. {
  82. case WM_PAINT:
  83. break;
  84. case WM_DESTROY:
  85. PostQuitMessage(uMsg);
  86. break;
  87. default:
  88. return DefWindowProc(hwnd, uMsg, wParam, lParam);
  89. break;
  90. }
  91. }

其中最主要的就是红色的地方,第一个是设置窗口样式为弹出窗口,虽然没搞明白为什么使用弹出窗口可以实现全屏,但是总归是实现了,回头仔细看看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. CSS: CSS常用的文本样式属性

    介绍:CSS常用的文本样式属性 color:  颜色 font-size:  字体大小 font-style (normal.italic.oblique): 字体样式(正常.斜体) font-wei ...

  2. iOS网络编程解析协议三:JSON数据传输解析

    作为一种轻量级的数据交换格式,正在逐步取代XML,成为网络数据的通用格式 基于JavaScript的一个子集 易读性略差,编码手写难度大,数据量小 JSON格式取代了XML给网络传输带来了很大的便利, ...

  3. css整站规划

    准备1 css reset /** * Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/) * http:/ ...

  4. CentOS7 rpm方式安装mysql5.7

    内容源自:CentOS7安装mysql 在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB. 1. ...

  5. 引导工具GRUB详解

    导读 引导程序是驻留在硬盘第一个扇区(MPR.主引导记录)的程序.GRUB是一个功能强大的多系统引导程序,专门处理Linux与其它操作系统共存的问题.下面就由我介绍一下grub.conf文件里的具体内 ...

  6. 【React】初识React

    React是什么 React是如今(2015年)最热门的前端技术. 在React中.一切皆组件. A JavaScript library for building user interfaces R ...

  7. Python+Django+SAE系列教程13-----MySQL记录的添\删\改

    建立了数据库后,我们就来做一个简单的表(person_classroom)的加入.删除.改动的操作. 首先我们建立一个加入的页面的模板Classroom_Add.html(加入的表单)并把它放在Bid ...

  8. WEB打印控件Lodop(V6.x)使用说明及样例

    WEB打印控件Lodop(V6.x)使用说明及样例 Lodop是专业WEB控件,用它既可裁剪输出页面内容,又可用程序代码生成复杂打印页. 控件功能强大,却简单易用,所有调用如同JavaScript扩展 ...

  9. Caused by: java.lang.NumberFormatException: For input string: &quot;&quot;

    1.错误描写叙述 java.lang.NumberFormatException: For input string: "" at java.lang.NumberFormatEx ...

  10. 创建组件“AxLicenseControl”失败

    打开以前的程序,准备来添加一个功能,打开主程序就报错: 我未曾改变过版本,原来是由于破解测试需要,修改了系统时间,时间对不了,ArcGIS的问题,改过来就正常了.