zoukankan      html  css  js  c++  java
  • API练习_图形

     1 #include<windows.h>
     2 LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
     3 int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
     4                    PSTR szCmdLine,int iCmdShow)
     5 {
     6     static TCHAR szAppName[]=TEXT("AltWind");
     7     HWND hwnd;
     8     MSG msg;
     9     WNDCLASS wndclass;
    10     wndclass.style=CS_HREDRAW|CS_VREDRAW;
    11     wndclass.lpfnWndProc=WndProc;
    12     wndclass.cbClsExtra=0;
    13     wndclass.cbWndExtra=0;
    14     wndclass.hInstance=hInstance;
    15     wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
    16     wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
    17     wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
    18     wndclass.lpszMenuName=NULL;
    19     wndclass.lpszClassName=szAppName;
    20     
    21 
    22     if(!RegisterClass(&wndclass))
    23     {
    24         MessageBox(NULL,TEXT("Program requires Windows NT!"),
    25             szAppName,MB_ICONERROR);
    26         return 0;
    27     }
    28 hwnd=CreateWindow(szAppName,TEXT("Altermate and winding FillModes"),
    29                   WS_OVERLAPPEDWINDOW,
    30                   CW_USEDEFAULT,CW_USEDEFAULT,
    31                   CW_USEDEFAULT,CW_USEDEFAULT,
    32                   NULL,NULL,hInstance,NULL);
    33 ShowWindow(hwnd,iCmdShow);
    34 UpdateWindow(hwnd);
    35 while(GetMessage(&msg,NULL,0,0))
    36 {
    37     TranslateMessage(&msg);
    38     DispatchMessage(&msg);
    39 }
    40 return msg.wParam;
    41 }
    42 LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
    43 {
    44     static POINT aptFigure[10]={10,70,50,70,50,10,90,10,90,50,
    45         30,50,30,90,70,90,70,30,10,30};
    46     static int cxClient,cyClient;
    47 
    48     HDC hdc;
    49     int i;
    50     PAINTSTRUCT ps;
    51     POINT apt[10];
    52 
    53     switch(message)
    54     {
    55     case WM_SIZE:
    56         cxClient=LOWORD(lParam);
    57         cyClient=HIWORD(lParam);
    58         return 0;
    59     case WM_PAINT:
    60         hdc=BeginPaint(hwnd,&ps);
    61         SelectObject(hdc,GetStockObject(GRAY_BRUSH));
    62 
    63         for(i=0;i<10;i++)
    64         {
    65             apt[i].x=cxClient*aptFigure[i].x/200;
    66             apt[i].y=cyClient*aptFigure[i].y/100;
    67         }
    68         SetPolyFillMode(hdc,ALTERNATE);
    69         Polygon(hdc,apt,10);
    70         for(i=0;i<10;i++)
    71         {
    72             apt[i].x+=cxClient/2;
    73         }
    74         SetPolyFillMode(hdc,WINDING);
    75         Polygon(hdc,apt,10);
    76 
    77         EndPaint(hwnd,&ps);
    78         return 0;
    79     case WM_DESTROY:
    80         PostQuitMessage(0);
    81         return 0;
    82     }
    83     return DefWindowProc(hwnd,message,wParam,lParam);
    84 }
  • 相关阅读:
    WebView与 JS 交互方式
    ES6常用知识点
    Flash Builder 破解与开发环境配置
    如何修改默认浏览器
    基本数据类型和常用内建对象
    VS 2010 使用技巧
    javascript之事件驱动编程的几个基本概念
    javascript笔记之DHTML基础
    浏览器对象模型
    开发心得记录
  • 原文地址:https://www.cnblogs.com/Zblogs/p/3254856.html
Copyright © 2011-2022 走看看