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=;
  13. wndclass.cbWndExtra=;
  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. if(!RegisterClass(&wndclass))
  22. {
  23. MessageBox(NULL,TEXT("Program requires Windows NT!"),
  24. szAppName,MB_ICONERROR);
  25. return ;
  26. }
  27. hwnd=CreateWindow(szAppName,TEXT("Altermate and winding FillModes"),
  28. WS_OVERLAPPEDWINDOW,
  29. CW_USEDEFAULT,CW_USEDEFAULT,
  30. CW_USEDEFAULT,CW_USEDEFAULT,
  31. NULL,NULL,hInstance,NULL);
  32. ShowWindow(hwnd,iCmdShow);
  33. UpdateWindow(hwnd);
  34. while(GetMessage(&msg,NULL,,))
  35. {
  36. TranslateMessage(&msg);
  37. DispatchMessage(&msg);
  38. }
  39. return msg.wParam;
  40. }
  41. LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
  42. {
  43. static POINT aptFigure[]={,,,,,,,,,,
  44. ,,,,,,,,,};
  45. static int cxClient,cyClient;
  46.  
  47. HDC hdc;
  48. int i;
  49. PAINTSTRUCT ps;
  50. POINT apt[];
  51.  
  52. switch(message)
  53. {
  54. case WM_SIZE:
  55. cxClient=LOWORD(lParam);
  56. cyClient=HIWORD(lParam);
  57. return ;
  58. case WM_PAINT:
  59. hdc=BeginPaint(hwnd,&ps);
  60. SelectObject(hdc,GetStockObject(GRAY_BRUSH));
  61.  
  62. for(i=;i<;i++)
  63. {
  64. apt[i].x=cxClient*aptFigure[i].x/;
  65. apt[i].y=cyClient*aptFigure[i].y/;
  66. }
  67. SetPolyFillMode(hdc,ALTERNATE);
  68. Polygon(hdc,apt,);
  69. for(i=;i<;i++)
  70. {
  71. apt[i].x+=cxClient/;
  72. }
  73. SetPolyFillMode(hdc,WINDING);
  74. Polygon(hdc,apt,);
  75.  
  76. EndPaint(hwnd,&ps);
  77. return ;
  78. case WM_DESTROY:
  79. PostQuitMessage();
  80. return ;
  81. }
  82. return DefWindowProc(hwnd,message,wParam,lParam);
  83. }

API练习_图形的更多相关文章

  1. FastStone Capture(FSCapture) 注册码 _图形图像_软件教程_脚本之家

    FastStone Capture(FSCapture) 注册码 _图形图像_软件教程_脚本之家 FastStone Capture 注册码 序列号: name/用户名:TEAM JiOO key/注 ...

  2. ArcGIS api for javascript——图形-使用多个图形图层

    描述 本例展示了如何增加多个图形图层到地图.一个图形图层显示国家,另一个显示城市.在一个地图中有多个图形图层的能力是在ArcGIS JavaScript API v1.4增加的. 从蓝色的城市点分隔灰 ...

  3. 3D数学基础_图形与游戏开发

    https://blog.csdn.net/popy007/article/list/2?t=1&  //向量计算相关文章 https://www.baidu.com/link?url=48C ...

  4. 测试服务API的_苏飞开发助手_使用说明

    1 工具说明_json对象字符串拼接 2 工具说明_纯字符串拼接

  5. Android 百度地图API(01)_开发环境 HelloBaiduMap

    转载于:http://blog.csdn.net/lmj623565791/article/details/37729091 转载于:http://blog.csdn.net/crazy1235/ar ...

  6. 04747_Java语言程序设计(一)_第7章_图形、图像与多媒体

    例7.1小应用程序用6种字型显示字符串,显示内容说明本身的字型. import java.applet.*; import java.awt.*; public class Example7_1 ex ...

  7. 04747_Java语言程序设计(一)_第6章_图形界面设计(二)

    例6.1声明一个面板子类,面板子类对象有3个选择框. class Panel1 extends JPanel { JCheckBox box1, box2, box3; Panel1() { box1 ...

  8. 淘宝api 开发_获取用户信息

    string url = "http://gw.api.taobao.com/router/rest"; "; string appsecret = "fdf7 ...

  9. 使用异步任务降低API延迟_实践总结

    之前在想如何降低API的延迟,这些API里有几个比较耗时的操作且是串行执行,那通过异步执行的方式理论上可以降低运行的时间,如下图所示: 具体的实现比较简单,例如这样: public class Par ...

随机推荐

  1. 【转】25个Git用法技巧

    Andy Jeffries 给 Git 中级用户总结分享的 25 个小贴士.你不需要去做大量搜索,或许这些小贴士对你就很有帮助的. 我从开始使用git到现在已经差不多18个月了,以为自己已经很懂git ...

  2. jQuery-ui datepicker的使用演示代码

    这两天使用jquery做一个web端展示的工具,遇到了不少问题也学到了不少知识.其中有一个就是在页面中显示日期选择器的功能,通过百度直接使用的是jquery datepicker 看到一篇使用说明很不 ...

  3. iOS Socket第三方开源类库 ----AsyncSocket 分类: ios相关 ios技术 2015-03-11 22:14 59人阅读 评论(0) 收藏

    假如你也是一个java程序员,而你又不是很懂Socket. 下面我的这篇文章也许能帮助你一些. http://xiva.iteye.com/blog/993336 首先我们写好上面文章中的server ...

  4. XP Mode 虛擬機器 for Windows 7

    免驗證官方直接下載 官網 Download Windows Virtual PC XP Mode for Windows 7 性質 Windows 7 免費 / en 多國 繁體中文(Traditio ...

  5. js 设置url 参数值

    //设置url中参数值 function setParam(param,value){ var query = location.search.substring(1); var p = new Re ...

  6. ios数据存储——对象归档

    归档:数据从内存与闪存相互转化,类似“序列化”,将数据转换成二进制字节数据 操作:有两种方式,第一种是单个对象作为root进行归档和恢复,一个对象一个文件:第二种,可以同时归档多个对象到一个文件 注意 ...

  7. C# TPL学习

    程序Ⅰ:通过Task类创建新线程 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ...

  8. Java中实现Serializable接口为什么要声明serialVersionUID?

    什么情况下需要修改serialVersionUID 的值?      序列化运行时使用一个称为 serialVersionUID 的版本号与每个可序列化类相关联,该序列号在反序列化过程中用于验证序列化 ...

  9. MariaDB与MySQL在一台服务器同时运行

    [root@HE3 ~]#groupadd mariadb -g 513 [root@HE3 ~]#useradd-u 513 -gmariadb -s /sbin/nologin -d /home/ ...

  10. MySQL生产库开发规范

    MySQL开发规范 文件状态: [  ] 草稿 [√] 正式发布 [  ] 正在修改 文件标识:   当前版本: V1.0  作    者: 贺磊  完成日期: 2016-05-24 变更记录 序号  ...