鱼C论坛

 找回密码
 立即注册
查看: 2119|回复: 2

WINDOWS程序设计(SDK)第24讲看不成谁有代码 看下

[复制链接]
发表于 2016-11-4 11:26:04 | 显示全部楼层 |阅读模式
5鱼币
     第24讲的 代码看不成  百度哪孙子说 侵权 ,麻麻的  画个 卡通 娃娃 还 找事,  有代码的 大神 代码发下

最佳答案

查看完整内容

机器猫是属于日本的,没花钱买版权肯定是侵权,凑合吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-11-4 11:26:05 | 显示全部楼层
机器猫是属于日本的,没花钱买版权肯定是侵权,凑合吧~
  1. /* -------------------------------------------------------------------
  2.                     MyWindows.c -- 基本窗口模型  
  3.                                 《Windows 程序设计(SDK)》视频教程                    
  4. --------------------------------------------------------------------*/

  5. #include <windows.h>

  6. LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

  7. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
  8. {
  9.         static TCHAR szAppName[] = TEXT("MyWindows");
  10.         HWND hwnd;
  11.         MSG msg;
  12.         WNDCLASS wndclass;

  13.         wndclass.style = CS_HREDRAW | CS_VREDRAW;
  14.         wndclass.lpfnWndProc = WndProc;
  15.         wndclass.cbClsExtra = 0;
  16.         wndclass.cbWndExtra = 0;
  17.         wndclass.hInstance = hInstance;
  18.         wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  19.         wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
  20.         wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
  21.         wndclass.lpszMenuName = NULL;
  22.         wndclass.lpszClassName = szAppName;

  23.         if (!RegisterClass(&wndclass))
  24.         {
  25.                 MessageBox(NULL, TEXT("这个程序需要在 Windows NT 才能执行!"), szAppName, MB_ICONERROR);
  26.                 return 0;
  27.         }

  28.         hwnd = CreateWindow(szAppName,
  29.                 TEXT("鱼C工作室"),
  30.                 WS_OVERLAPPEDWINDOW,
  31.                 CW_USEDEFAULT,
  32.                 CW_USEDEFAULT,
  33.                 CW_USEDEFAULT,
  34.                 CW_USEDEFAULT,
  35.                 NULL,
  36.                 NULL,
  37.                 hInstance,
  38.                 NULL);
  39.        
  40.         ShowWindow(hwnd, iCmdShow);
  41.         UpdateWindow(hwnd);

  42.         while (GetMessage(&msg, NULL, 0, 0))
  43.         {
  44.                 TranslateMessage(&msg);
  45.                 DispatchMessage(&msg);
  46.         }

  47.         return msg.wParam;
  48. }

  49. LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
  50. {
  51.         HDC hdc;
  52.         PAINTSTRUCT ps;
  53.         HPEN hPen, hOldPen;
  54.         HBRUSH hBlueBrush, hRedBrush, hYellowBrush, hOldBrush;
  55.         POINT apt[128];
  56.         static int cxClient, cyClient;

  57.         switch (message)
  58.         {
  59.         case WM_SIZE:
  60.                 cxClient = LOWORD(lParam);
  61.                 cyClient = HIWORD(lParam);
  62.                 return 0;

  63.         case WM_PAINT:
  64.                 hdc = BeginPaint(hwnd, &ps);
  65.                
  66.                 // 辅助线
  67.                 hPen = CreatePen(PS_DOT, 1, RGB(192, 192, 192));
  68.                 hOldPen = SelectObject(hdc, hPen);
  69.                 MoveToEx(hdc, cxClient / 2, 0, NULL);
  70.                 LineTo(hdc, cxClient / 2, cyClient);
  71.                 MoveToEx(hdc, 0, cyClient / 2, NULL);
  72.                 LineTo(hdc, cxClient, cyClient / 2);
  73.                 SelectObject(hdc, hOldPen);

  74.                 // 头(直径240)
  75.                 hBlueBrush = CreateSolidBrush(RGB(0, 159, 232));
  76.                 hOldBrush = SelectObject(hdc, hBlueBrush);
  77.                 Ellipse(hdc, cxClient / 2 - 120, cyClient / 2 - 200, cxClient / 2 + 120, cyClient / 2 + 40);
  78.                 SelectObject(hdc, hOldBrush);

  79.                 // 脸(直径200)
  80.                 Ellipse(hdc, cxClient / 2 - 100, cyClient / 2 - 160, cxClient / 2 + 100, cyClient / 2 + 40);

  81.                 // 眼睛(长60, 宽50)
  82.                 Ellipse(hdc, cxClient / 2 - 50, cyClient / 2 - 180, cxClient / 2, cyClient / 2 - 120);
  83.                 Ellipse(hdc, cxClient / 2 + 50, cyClient / 2 - 180, cxClient / 2, cyClient / 2 - 120);

  84.                 hOldBrush = SelectObject(hdc, GetStockObject(BLACK_BRUSH));
  85.                 Ellipse(hdc, cxClient / 2 - 20, cyClient / 2 - 160, cxClient / 2 - 5, cyClient / 2 - 140);
  86.                 Ellipse(hdc, cxClient / 2 + 20, cyClient / 2 - 160, cxClient / 2 + 5, cyClient / 2 - 140);
  87.                 SelectObject(hdc, GetStockObject(WHITE_BRUSH));
  88.                 Ellipse(hdc, cxClient / 2 - 15, cyClient / 2 - 155, cxClient / 2 - 10, cyClient / 2 - 145);
  89.                 Ellipse(hdc, cxClient / 2 + 15, cyClient / 2 - 155, cxClient / 2 + 10, cyClient / 2 - 145);
  90.                 SelectObject(hdc, hOldBrush);

  91.                 // 鼻子
  92.                 hRedBrush = CreateSolidBrush(RGB(255, 0, 0));
  93.                 hOldBrush = SelectObject(hdc, hRedBrush);
  94.                 Ellipse(hdc, cxClient / 2 - 10, cyClient / 2 - 135, cxClient / 2 + 10, cyClient / 2 - 115);
  95.                
  96.                 MoveToEx(hdc, cxClient / 2, cyClient / 2 - 115, NULL);
  97.                 LineTo(hdc, cxClient / 2, cyClient / 2 - 30);
  98.                
  99.                 SelectObject(hdc, hOldBrush);

  100.                 // 嘴巴
  101.                 Arc(hdc, cxClient / 2 - 70, cyClient / 2 - 120, cxClient / 2 + 70, cyClient / 2 - 30, \
  102.                         cxClient / 2 - 60, cyClient / 2 - 50, cxClient / 2 + 60, cyClient / 2 - 50);

  103.                 // 胡子
  104.                 MoveToEx(hdc, cxClient / 2 - 70, cyClient / 2 - 115, NULL);
  105.                 LineTo(hdc, cxClient / 2 - 20, cyClient / 2 - 100);
  106.                 MoveToEx(hdc, cxClient / 2 - 80, cyClient / 2 - 85, NULL);
  107.                 LineTo(hdc, cxClient / 2 - 20, cyClient / 2 - 85);
  108.                 MoveToEx(hdc, cxClient / 2 - 70, cyClient / 2 - 55, NULL);
  109.                 LineTo(hdc, cxClient / 2 - 20, cyClient / 2 - 70);

  110.                 MoveToEx(hdc, cxClient / 2 + 70, cyClient / 2 - 115, NULL);
  111.                 LineTo(hdc, cxClient / 2 + 20, cyClient / 2 - 100);
  112.                 MoveToEx(hdc, cxClient / 2 + 80, cyClient / 2 - 85, NULL);
  113.                 LineTo(hdc, cxClient / 2 + 20, cyClient / 2 - 85);
  114.                 MoveToEx(hdc, cxClient / 2 + 70, cyClient / 2 - 55, NULL);
  115.                 LineTo(hdc, cxClient / 2 + 20, cyClient / 2 - 70);

  116.                 // 身体
  117.                 hOldBrush = SelectObject(hdc, hBlueBrush);
  118.                 Rectangle(hdc, cxClient / 2 - 90, cyClient / 2, cxClient / 2 + 90, cyClient / 2 + 150);
  119.                 SelectObject(hdc, hOldBrush);

  120.                 // 肚子
  121.                 Ellipse(hdc, cxClient / 2 - 70, cyClient / 2 - 20, cxClient / 2 + 70, cyClient / 2 + 120);
  122.                 hPen = CreatePen(PS_SOLID, 2, RGB(255, 255, 255));
  123.                 hOldPen = SelectObject(hdc, hPen);
  124.                 Arc(hdc, cxClient / 2 - 70, cyClient / 2 - 20, cxClient / 2 + 70, cyClient / 2 + 120, \
  125.                         cxClient / 2 + 60, cyClient / 2 - 10, cxClient / 2 - 60, cyClient / 2 - 10);
  126.                 SelectObject(hdc, hOldPen);

  127.                 // 项圈
  128.                 hOldBrush = SelectObject(hdc, hRedBrush);
  129.                 RoundRect(hdc, cxClient / 2 - 95, cyClient / 2 - 5, cxClient / 2 + 95, cyClient / 2 + 10, 20, 20);
  130.                 SelectObject(hdc, hOldBrush);

  131.                 // 铃铛
  132.                 hYellowBrush = CreateSolidBrush(RGB(255, 255, 0));
  133.                 hOldBrush = SelectObject(hdc, hYellowBrush);
  134.                 Ellipse(hdc, cxClient / 2 - 15, cyClient / 2, cxClient / 2 + 15, cyClient / 2 + 30);
  135.                 RoundRect(hdc, cxClient / 2 - 15, cyClient / 2 + 10, cxClient / 2 + 15, cyClient / 2 + 15, 2, 2);
  136.                 SelectObject(hdc, hRedBrush);
  137.                 Ellipse(hdc, cxClient / 2 - 4, cyClient / 2 + 18, cxClient / 2 + 4, cyClient / 2 + 26);
  138.                 MoveToEx(hdc, cxClient / 2, cyClient / 2 + 26, NULL);
  139.                 LineTo(hdc, cxClient / 2, cyClient / 2 + 30);

  140.                 SelectObject(hdc, hOldBrush);

  141.                 // 口袋
  142.                 Pie(hdc, cxClient / 2 - 50, cyClient / 2, cxClient / 2 + 50, cyClient / 2 + 100, \
  143.                         cxClient / 2 - 50, cyClient / 2 + 50, cxClient / 2 + 50, cyClient / 2 + 50);

  144.                 // 脚
  145.                 Pie(hdc, cxClient / 2 - 20, cyClient / 2 + 130, cxClient / 2 + 20, cyClient / 2 + 170, \
  146.                         cxClient / 2 + 20, cyClient / 2 + 150, cxClient / 2 - 20, cyClient / 2 + 150);
  147.                 hPen = CreatePen(PS_SOLID, 2, RGB(255, 255, 255));
  148.                 hOldPen = SelectObject(hdc, hPen);
  149.                 MoveToEx(hdc, cxClient / 2 - 20, cyClient / 2 + 150, NULL);
  150.                 LineTo(hdc, cxClient / 2 + 20, cyClient / 2 + 150);
  151.                 SelectObject(hdc, hOldPen);

  152.                 Ellipse(hdc, cxClient / 2 - 110, cyClient / 2 + 130, cxClient / 2 - 10, cyClient / 2 + 170);
  153.                 Ellipse(hdc, cxClient / 2 + 110, cyClient / 2 + 130, cxClient / 2 + 10, cyClient / 2 + 170);

  154.                 // 手
  155.                 hOldBrush = SelectObject(hdc, hBlueBrush);
  156.                 apt[0].x = cxClient / 2 - 90;
  157.                 apt[0].y = cyClient / 2 + 10;
  158.                 apt[1].x = cxClient / 2 - 130;
  159.                 apt[1].y = cyClient / 2 + 50;
  160.                 apt[2].x = cxClient / 2 - 110;
  161.                 apt[2].y = cyClient / 2 + 70;
  162.                 apt[3].x = cxClient / 2 - 90;
  163.                 apt[3].y = cyClient / 2 + 60;
  164.                 Polygon(hdc, apt, 4);
  165.                 SelectObject(hdc, hOldBrush);
  166.                 Ellipse(hdc, cxClient / 2 - 150, cyClient / 2 + 46, cxClient / 2 - 110, cyClient / 2 + 86);

  167.                 hOldBrush = SelectObject(hdc, hBlueBrush);
  168.                 apt[0].x = cxClient / 2 + 90;
  169.                 apt[0].y = cyClient / 2 + 10;
  170.                 apt[1].x = cxClient / 2 + 130;
  171.                 apt[1].y = cyClient / 2 + 50;
  172.                 apt[2].x = cxClient / 2 + 110;
  173.                 apt[2].y = cyClient / 2 + 70;
  174.                 apt[3].x = cxClient / 2 + 90;
  175.                 apt[3].y = cyClient / 2 + 60;
  176.                 Polygon(hdc, apt, 4);
  177.                 SelectObject(hdc, hOldBrush);
  178.                 Ellipse(hdc, cxClient / 2 + 150, cyClient / 2 + 46, cxClient / 2 + 110, cyClient / 2 + 86);

  179.                 hPen = CreatePen(PS_SOLID, 2, RGB(0, 159, 232));
  180.                 hOldPen = SelectObject(hdc, hPen);
  181.                 MoveToEx(hdc, cxClient / 2 - 90, cyClient / 2 + 10, NULL);
  182.                 LineTo(hdc, cxClient / 2 - 90, cyClient / 2 + 50);
  183.                 MoveToEx(hdc, cxClient / 2 + 90, cyClient / 2 + 10, NULL);
  184.                 LineTo(hdc, cxClient / 2 + 90, cyClient / 2 + 50);
  185.                 SelectObject(hdc, hOldPen);

  186.                 EndPaint(hwnd, &ps);
  187.                 return 0;

  188.         case WM_DESTROY:
  189.                 PostQuitMessage(0);
  190.                 return 0;
  191.         }

  192.         return DefWindowProc(hwnd, message, wParam, lParam);
  193. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-11-4 21:52:48 | 显示全部楼层
alltolove 发表于 2016-11-4 13:31
机器猫是属于日本的,没花钱买版权肯定是侵权,凑合吧~

谢谢 你的代码 学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 08:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表