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 }

 

转载于:https://www.cnblogs.com/Zblogs/p/3254856.html

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下 4载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值