小菜鸟的C++游戏编程学习日记(一)
2016-07-27 21:36
316 查看
小菜鸟的C++游戏编程学习日记(一)
作者:杨帆 参考书籍:Beginning Game ProGramming(中文版) 学习时间:2016.7.26
以下附所敲源代码与部分注释:
//编译环境 visual studio 2015 #include <windows.h> #include <iostream> LRESULT CALLBACK WinProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) //消息回调函数 { RECT rect; PAINTSTRUCT ps; HDC hdc; switch (message) { case WM_PAINT: { hdc = BeginPaint(hwnd, &ps); for (int i = 0; i < 10; i++) //这是 { //一些 int x = i * 20; //没有 int y = i * 20; //卵用 rect = { x,y,x + 100,y + 20 }; //的 DrawText(hdc, "OmdSAuK", 7, &rect, DT_CENTER); //东西 } EndPaint(hwnd, &ps); } break; case WM_DESTROY: PostQuitMessage(0); break; default: break; } return DefWindowProc(hwnd, message, wParam, lParam); //返回默认 } ATOM WinRegisterClass(HINSTANCE hInstance) //注册一个窗口类 { WNDCLASSEX wndclassex; wndclassex.cbClsExtra = 0; wndclassex.cbSize = sizeof(WNDCLASSEX); wndclassex.cbWndExtra = 0; wndclassex.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wndclassex.hCursor = NULL; wndclassex.hIcon = LoadCursor(NULL,IDC_ARROW); wndclassex.hIconSm = NULL; wndclassex.hInstance = hInstance; wndclassex.lpszClassName = NULL; wndclassex.lpszMenuName = NULL; wndclassex.style = CS_HREDRAW | CS_VREDRAW; wndclassex.lpfnWndProc = (WNDPROC)WinProc; return RegisterClassEx(&wndclassex); } bool InitInstance(HINSTANCE hInstance, int nCmdShow) //初始化一个窗口实例 { HWND hwnd = CreateWindow( "MyTest", "test", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 800, 500, NULL, NULL, hInstance, NULL ); if (hwnd == 0) { return 0; } ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd); return 1; } int WINAPI WinMain(HINSTANCE hInstance, //此窗口实例 HINSTANCE hPrevInstance, //上一个窗口实例 WPARAM wParam,LPARAM lParam, //无视 LPSTR lpCmdLine, //包含传递给函数的命令行参数字符串 int nCmdShow //制定创建窗口时的显示方式 ) { WinRegisterClass(hInstance); if (!InitInstance(hInstance,nCmdShow)) { return 0; } MSG msg; while (GetMessage(&msg,NULL,0,0)) //Main获得消息后对消息的处理 { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; }
对于刚从命令行转到窗口的我来说对于这部分还需要更多的联系与深入的理解,对于windows的消息处理机制做更深入学习。目前只是对于这些参数有概念性的知识,恐怕没有书本自己也写不出来。继续加油吧。这里附上本人的[GitHub](https://github.com/Amnnny)地址,希望有同样兴趣的伙伴联系我一起学习相互交流。
相关文章推荐
- 小菜鸟的C++游戏编程学习日记(二)
- 一个java菜鸟求职辛酸史之二
- 自建应用新花样,菜鸟也会做应用
- JVM菜鸟进阶高手之路二(JVM的重要性,Xmn是跟请求量有关。)
- 菜鸟也学Ogre-帧监听和无缓冲输入
- [菜鸟学爪哇]Day 2
- 【菜鸟的leetcode之旅】231.power of two
- 和菜鸟一起学android4.0.3源码之bluetooth移植心得
- 【菜鸟Opencv 3】-VideoWriter的用法 视频输出
- JVM菜鸟进阶高手之路六(JVM每隔一小时执行一次Full GC)
- 万里长征,始于足下——菜鸟程序员的学习总结(一)
- 菜鸟好文推荐(三)——正确使用Java事件通知
- JVM菜鸟进阶高手之路十(基础知识开场白)
- 菜鸟浅谈Linux内核编译过程...
- “菜鸟”程序员和“大神”程序员差距在哪里
- C语言菜鸟基础教程之Hello World
- 菜鸟入侵
- 菜鸟的日记
- Java程序员从笨鸟到菜鸟之(二)数组
- 菜鸟初始代码旅程——修改记录