博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Visual C++ 游戏开发案例实践 代码3.1 算术与赋值运算符示例
阅读量:5231 次
发布时间:2019-06-14

本文共 3876 字,大约阅读时间需要 12 分钟。

代码3.1 算术与赋值运算符示例

1 #include 
//一个windows应用程序应该包含的头文件(笔者认为这就是SDK风格的windows应用程序了) 2 #include
//标准输入输出流文件 3 4 //声明一个回调函数 5 LRESULT CALLBACK WinSunProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lparam); 6 //窗口句柄,窗口消息 7 8 //创建一个完整的窗口需要经过四个步骤:设计一个窗口类;注册窗口类;创建窗口;显示及更新窗口 9 //WinMain:Windows 程序的入口函数10 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)11 { //hInstance 实例句柄、hPrevInstance默认这个参数为NULL、lpCmdLine存储一个命令行参数12 13 WNDCLASS wndcls; //定义一个窗口对象14 wndcls.cbClsExtra = 0; //指定额外内存空间15 wndcls.cbWndExtra = 0; //指定额外内存空间16 wndcls.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //指定窗口背景颜色17 wndcls.hCursor = LoadCursor(NULL, IDC_CROSS); //设置光标样式18 wndcls.hIcon = LoadIcon(NULL, IDI_ERROR); //设置图标样式19 wndcls.hInstance = hInstance; //指定窗口实例句柄20 wndcls.lpfnWndProc = WinSunProc; //指定窗口函数、窗口主处理函数21 wndcls.lpszClassName = "Visual C++ Game"; //窗口类名称22 wndcls.lpszMenuName = NULL; //菜单23 wndcls.style = CS_HREDRAW | CS_VREDRAW;24 RegisterClass(&wndcls); //注册窗口类25 HWND hwnd; //声名窗口句柄26 27 //创建窗口,但是这里的窗口是不会显示的28 hwnd = CreateWindow29 ("Visual C++ Game", // 已注册窗口类的名称 30 "Visual C++ 游戏开发", //窗口标题31 WS_OVERLAPPEDWINDOW, //窗口风格32 200, //窗口位置的横坐标33 200, //窗口位置的纵坐标34 600, //窗口宽度35 400, //窗口高度36 NULL,37 NULL,38 hInstance, //实例句柄39 NULL40 );41 ShowWindow(hwnd, SW_SHOWNORMAL);42 UpdateWindow(hwnd); //更新显示43 //初始化完成后,WinMain进入消息循环44 MSG msg;45 while (GetMessage(&msg, NULL, 0, 0))46 {47 TranslateMessage(&msg); //转换键盘消息48 DispatchMessage(&msg); //分派消息49 }50 return 0;51 }52 //窗口函数,窗口函数通常利用switch/case 方式判断消息的种类,以决定处置方式,由于其被Windows 系统所调用的,所以这是一种call back 函数53 LRESULT CALLBACK WinSunProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)54 {55 char tmsg[128] = { 0 };56 int num1, num2, num3, num4, num5; //声名5个变量57 num1 = 3 + 8; //加法运算58 num2 = 10 - 7; //减法运算59 num3 = 100 * 33; //乘法运算60 num4 = 155 / 5; //除法运算61 num5 = 9 % 2; //取模运算62 //把运算符和结果输出到tmsg中63 sprintf_s(tmsg, "3+8 = %d 10 -7 = %d 100 * 33 = %d 155/5 = %d 9%%2 = %d", num1, num2, num3, num4, num5);64 65 switch (uMsg) //判断消息类型66 {67 case WM_PAINT: //更新窗口消息68 HDC hDC; //定义 hDC 设备69 PAINTSTRUCT ps;70 hDC = BeginPaint(hwnd, &ps); //得到设备hDC71 TextOut(hDC, 150, 0, tmsg, strlen(tmsg));72 EndPaint(hwnd, &ps);73 break;74 case WM_CLOSE: //当单击关闭按钮时,产生关闭消息75 if (IDYES == MessageBox(hwnd, "是否真的结束?", "游戏开发", MB_YESNO))76 {77 DestroyWindow(hwnd); //单击“确认”按钮,销毁窗口78 }79 break;80 case WM_DESTROY: //销毁窗口消息81 PostQuitMessage(0); //退出程序82 break;83 default:84 return DefWindowProc(hwnd, uMsg, wParam, lParam);85 //在default 处必须调用DefWindowProc,这是Windows内部默认的消息处理函数86 }87 return 0;88 }
View Code

 

转载于:https://www.cnblogs.com/haihai187/p/6562438.html

你可能感兴趣的文章