希望国内的单机游戏开发环境能越来越好吧

#include<Windows.h>
#pragma comment(lib,"winmm.lib")//窗口过程函数
/*LRESULT CALLBACK WindowProc(_In_ HWND hwdn,_In_ UINT uMsg,    _In_ WPARAM wParam,_In_ LPARAM lParam);
*/
LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {/*hInstance: h->handle  Instance:句柄hPrevInstance: h->handle  Instance:句柄  Prev:前一个lpCmdLine: 指定传输给运用程序的命令行参数  lp:参数为一个指针    Cmd:command  Line:命令行nCmdShow: 窗口如何显示*//*int WINAPI MessageBox(_In_opt HWND hWnd, _In_opt LPCTSTER lpText, _In_opt LPCTSTER lpCation, _In_opt UINT uType);hWnd: 窗口的句柄lpText: 窗口显示的内容lpCation: 标题uType: 样式*/MessageBox(NULL, L"你好,Visual Studio!", L"消息窗口", 0);boolean error = 0;if (error) {MessageBox(NULL, L"在这里填写错误信息", L"在这里填写错误信息", 0);}/*BOOL PlaySound(LPCTSTR pszSound, HMODULE hmod, DWORD fdwSound);pszSound: 要播放的文件hmod: 句柄fdwSound: 控制文件播放的标识*///PlaySound(L"FirstBlood.wav", NULL, SND_FILENAME | SND_ASYNC);    //SND_FILENAME:pszSound参数指定了WAVE文件名  SND_ASYNC:同步播放声音 播放完后函数返回//MessageBox(NULL, L"FirstBlood,你好,游戏开发世界", L"FirstBlood!", 0);/* 消息 传递双击事件等typedef struct tagMSG{HWND hwnd;  消息的窗口UINT message; 消息的标识符WPARAM wParam; 附加信息LPARAM lParam; 附加信息DWORD time; 投递到消息队列的时间POINT pt; 投递到消息队列中时鼠标的位置}MSG*//*控制窗口的特征typedef struct tagWNDCLASSEX{UINT cbSize; 结构体的字节数大小UINT style; 窗口的风格样式WNDPROC lpfnWndProc; 窗口过程int cbClsExtra; 窗口类附加内存int cbWndExtra; 窗口的附加内存HINSTANCE hInstance;  实力句柄HICON hIcon; 图标句柄HCURSOR hCurosr; 光标句柄HBRUSH hbrBackground; 背景画刷句柄LPCTSTR lpszMenuName; 菜单名LPCTSTR lpszClassName; 窗口类的名字HICON hIconSm; 窗口类的小图标句柄}WNDCLASSEX, *PWNDCLASSEX;*///窗口类的构建WNDCLASSEX wndClass = { 0 };wndClass.cbSize = sizeof(WNDCLASSEX);wndClass.style = CS_HREDRAW | CS_VREDRAW;wndClass.lpfnWndProc = WndProc;wndClass.cbClsExtra = 0;wndClass.cbWndExtra = 0;wndClass.hInstance = hInstance;wndClass.hIcon = (HICON)::LoadImage(NULL, L"icon.ico", IMAGE_ICON, 0, 0, LR_DEFAULTSIZE | LR_LOADFROMFILE);wndClass.hCursor = LoadCursor(NULL, IDC_ARROW);wndClass.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);wndClass.lpszMenuName = NULL;wndClass.lpszClassName = L"GameDevelopDepartment";//窗口类的注册 RegisterClassExRegisterClassEx(&wndClass);//窗口的正式创建/*HWND WINAPI CreateWindow(_In_opt LPCTSTR lpClassName,  对应窗口类名_In_opt LPCTSTR lpWindowName, 创建的窗口类名_In DWORD dwStyle, 窗口样式_In_int x, 水平位置_In_int y, 竖直位置_In_int nWidth, 窗口宽度_In_int nHeight, 窗口高度_In_opt HWND hWndParent, 父窗口句柄_In_opt HMENU hMenu, 资源句柄_In_opt HINSTANCE hInstance, 应用程序实例句柄_In_opt LPVOID lpParam 附加参数);*/HWND hWnd = CreateWindowW(L"GameDevelopDepartment", L"游戏开发部", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 800, 600, NULL, NULL, hInstance, NULL);//窗口的显示和更新//1.改变窗口的位置和大小/*BOOL WINAPI MoveWindow(_In_ HWND hWnd,_In_ int x,_In_ int y,_In_ int nWidth,_In_ int nHeight,_In_ BOOL bRepaint 是否重画窗口);*/MoveWindow(hWnd, 200, 50, 800, 600, true);//2.显示窗口/*BOOL WINAPI ShowWindow(_In HWND hWnd,_In int nCmdShow 窗口的显示状态);*/ShowWindow(hWnd, nCmdShow);//3.更新窗口/*BOOL UpdateWindow(_In_ HWND hWnd);*/UpdateWindow(hWnd);//GetMessage为核心的消息循环体系//GetMessage只有在接收到WM_QUIT的情况下才会返回0,错误返回-1 无消息时会一直等待/*BOOL WINAPI GetMessage(_Out_ LPMGS lpMsg, 指向一个消息结构体_In_opt_ HWND hWnd, 接受哪一个窗口的消息_In_ UINT wMsgFilterMin, 获取消息的最小值_In_ UINT wMsgFilterMax 获取消息的最大值);*///MSG msg = { 0 };    //定义一个MSG结构体//while (GetMessage(&msg, NULL, 0, 0)) {    //    TranslateMessage(&msg);    //虚拟键消息转化为字符消息//    DispatchMessage(&msg);    //分发消息给窗口//}//PeekMessage为核心的消息循环体系//PeekMessage在接收到消息的时候返回非0 不能接收到消息返回0 不论是否有消息都会继续执行/*BOOL WINAPI PeekMessage(_Out_ LPMGS lpMsg, 指向一个消息结构体_In_opt_ HWND hWnd, 接受哪一个窗口的消息_In_ UINT wMsgFilterMin, 获取消息的最小值_In_ UINT wMsgFilterMax, 获取消息的最大值_In_ UINT wRemoveMsg 消息的获取方式);*/MSG msg = { 0 };while (msg.message != WM_QUIT) {if (PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) {TranslateMessage(&msg);    DispatchMessageW(&msg);}}//注销窗口/*BOOL WINAPI UnregisterClass/UnregisterClassEx(_In_ LPCTSTR lpClasName, 注销的类名_In_opt HINSTANCE hInstane);*/UnregisterClassW(L"GameDevelopDepartment", hInstance);return 0;
}

逐梦旅程(著:毛星云)---学习笔记第三章相关推荐

  1. 【逐梦旅程Windows游戏编程学习笔记 ①】基本GDI绘图

    近半年各种忙碌,一直没写博客,现在得空学习记录一下,原书为<逐梦旅程 Windows游戏编程之从零开始>毛星云编著 实现样式与功能: 实现功能: 1,显示title:"致我们.. ...

  2. 《Go语言圣经》学习笔记 第三章 基础数据类型

    <Go语言圣经>学习笔记 第三章 基础数据类型 目录 整型 浮点数 复数 布尔型 字符串 常量 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语言小白学习笔记, ...

  3. 机器人导论(第四版)学习笔记——第三章

    机器人导论(第四版)学习笔记--第三章 3 操作臂运动学 3.1 引言 3.2 连杆的描述 3.3 连杆连接的描述 3.4 连杆坐标系的定义 3.5 操作臂运动学 3.6 驱动空间.关节空间和笛卡尔空 ...

  4. 2022 最新 Android 基础教程,从开发入门到项目实战【b站动脑学院】学习笔记——第三章:简单控件

    第 3 章 简单控件 本章介绍了App开发常见的几类简单控件的用法,主要包括:显示文字的文本视图.容纳视图的常用布局.响应点击的按钮控件.显示图片的图像视图等.然后结合本章所学的知识,演示了一个实战项 ...

  5. Win32学习笔记 第三章 HelloWin 选择自 villager 的 Blog

    Win32学习笔记 作者: 姜学哲(netsail0@163.net) 教材: Windows程序设计(第五版)北京大学出版社  [美]Charles Petzold 著  北京博彦科技发展有限公司 ...

  6. ros2 Navigation 学习笔记 第三章(the construct 网站)

    第三章 如何在环境中给机器人定位 序言 本章包括: 机器人定位的意义(即需要知道它对于环境中的位置和方向) 如何在ROS2中用AMCL定位 如何设置机器人的初始位置(手动.自动与使用ROS API) ...

  7. CISSP AIO7 学习笔记 - 第三章 安全工程 3.4-3.10小节

    感觉看书好慢,还是上课的时候学东西快一些,给人讲一遍,抵得过看好几遍... 看一遍实体书,慢,非常慢,特别慢! 然后来写写博客记笔记,对着电子书来看,算是第二遍. 最后还需要写思维导图,第三遍了吧. ...

  8. The Road to learn React书籍学习笔记(第三章)

    代码详情 声明周期方法 通过之前的学习,可以了解到ES6 类组件中的生命周期方法 constructor() 和 render() constructor() 构造函数只有在组件实例化并插入到 DOM ...

  9. 第一行代码学习笔记第三章——UI开发的点点滴滴

    知识点目录 3.1 如何编写程序界面 3.2 常用控件的使用方法 * 3.2.1 TextView * 3.2.2 Button * 3.2.3 EditText * 3.2.4 ImageView ...

最新文章

  1. 从月薪5千到月薪3万,优秀的程序员是这样做的...
  2. HTML的BODY内标签介绍
  3. SAP CRM WebClient UI session restart
  4. serialport通过usb通讯_IOT串口通讯-RS232/RS485
  5. python并发编程之semaphore(信号量)_浅谈Python并发编程之进程(守护进程、锁、信号量)...
  6. java/02/java运算符,java逻辑控制,java方法的定义及使用
  7. jsp调用java的数据库连接,初学jsp,javabean连接数据库调用总是报错,疯了,求大神解决方案...
  8. 翻译:Swift5 使用日期类型:Date、DateFormatter、DateComponent
  9. c++ 成员初始化列表
  10. 三星 s9 android 9,美国V版三星S9/S9+迎来安卓9更新
  11. 基于matlab的模糊PID控制仿真
  12. github上传代码步骤
  13. No DataSource specified
  14. OOAD 3 迭代、进化和敏捷(Iterative,Evolutionary,and Agile)
  15. 测试手机运行速度的软件,你的手机合格了吗 两款手机性能测试软件横评
  16. 不用linux转录组数据分析,RNA-seq转录组数据分析
  17. 人工智能实验--汉诺塔规约图(四个盘子)
  18. TIA博途中数组Array的基本使用方法详解
  19. 开源BI平台软件特性对比
  20. 固定定位失效问题(position:fixed;固定定位)

热门文章

  1. JAVA容器,什么叫JAVA容器?
  2. 负载均衡_Maglev
  3. 使用Eagle2进行单倍型分析
  4. 算法时间复杂度计算方法
  5. DEM数据知识介绍-数字高程模型
  6. E1协议转换器使用中常见故障问题及处理方法总结
  7. Kolmogorov–Smirnov test
  8. cout 和cerr的区别
  9. 运动控制卡讲解及实例应用
  10. MongoDB分组取每组中一条数据