第26周-window程序设计(基础篇)-第5章(图形基础)-SINEWAVE.C正弦波
来源:互联网 发布:windows打印服务器 编辑:程序博客网 时间:2024/05/23 10:14
1、SINEWAVE.C正弦波:
/*SINEWAVE.C 画正弦波——Sine Wave Using Polyline*/#include<windows.h>#include<math.h>#define NUM 1000#define TWOPI (2*3.14159)LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)){ static TCHAR szAppName[] = TEXT("SineWave"); HWND hwnd ; MSG msg ; WNDCLASS wndclass ; wndclass.style = CS_HREDRAW | CS_VREDRAW ; wndclass.lpfnWndProc= WndProc ; wndclass.cbClsExtra = 0 ; wndclass.cbWndExtra = 0 ; wndclass.hInstance = hInstance ; wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; wndclass.hbrBackground= (HBRUSH) GetStockObject (WHITE_BRUSH) ; wndclass.lpszMenuName = NULL ; wndclass.lpszClassName = szAppName ; if (!RegisterClass (&wndclass)) { MessageBox ( NULL, TEXT ("Program requires Windows NT!"), szAppName, MB_ICONERROR) ; return 0 ; } hwnd = CreateWindow ( szAppName, TEXT ("Sine Wave Using Polyline"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL) ; ShowWindow (hwnd, iCmdShow) ; UpdateWindow (hwnd) ; while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg) ; DispatchMessage (&msg) ; } return msg.wParam ; }LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { static int cxClient, cyClient ; HDC hdc ; int i ; PAINTSTRUCT ps ; POINT apt [NUM] ; switch (message) { case WM_SIZE: cxClient = LOWORD (lParam) ;//窗口框架客户区与视图窗口客户区的区别应注意 cyClient = HIWORD (lParam) ;//当用户调节了窗口尺寸后的,客户区长度和宽度,lParam是32位的,低16位时长度,高16位时宽度 return 0 ; case WM_PAINT: hdc =BeginPaint (hwnd, &ps) ; MoveToEx (hdc, 0, cyClient / 2, NULL) ; LineTo (hdc, cxClient, cyClient / 2) ; for (i = 0 ; i < NUM ; i++) { apt[i].x = i * cxClient / NUM ; apt[i].y = (int) (cyClient / 2 * (1 - sin (TWOPI * i / NUM))) ; } Polyline (hdc, apt, NUM) ; return 0 ; case WM_DESTROY: PostQuitMessage (0) ; return 0 ; } return DefWindowProc (hwnd, message, wParam, lParam) ; }
0 0
- 第26周-window程序设计(基础篇)-第5章(图形基础)-SINEWAVE.C正弦波
- 第26周-window程序设计(基础篇)-第5章(图形基础)-DEVCAPS1.C
- 第26周-window程序设计(基础篇)-第5章(图形基础)-贝塞尔曲线BEZIER.C
- 第26周-window程序设计(基础篇)-第5章(图形基础)-边界框及LINDEMO.C
- 第26周-window程序设计(基础篇)-第5章(图形基础)-关于颜色
- 第26周-window程序设计(基础篇)-第5章(图形基础)-点和线
- 第26周-window程序设计(基础篇)-第5章(图形基础)-取得设备内容的多方法
- 第26周-window程序设计(基础篇)-第5章(图形基础)-使用现有画笔Stock Pens
- 第26周-window程序设计(基础篇)-第5章(图形基础)-填入空隙和填入区域
- 第26周-window程序设计(基础篇)-第5章(图形基础)-Polygon函数和多边形填入方式
- 第25周-window程序设计(基础篇)-第4章-GDI图形设备接口
- 第25周-window程序设计(基础篇)-第2章-实例ScreenSize.c
- 第25周-window程序设计(基础篇)-第3章-实例HelloWin.c
- 第25周-window程序设计(基础篇)-第4章-SYSMETS.C窗口消息处理程序
- 第25周-window程序设计(基础篇)-第4章-SYSMETS3.C
- 第25周-window程序设计(基础篇)-第2章-windows为何不用printf
- 第25周-window程序设计(基础篇)-第3章-注册窗口类别1
- 第25周-window程序设计(基础篇)-第3章-注册窗口类别2
- 文件路径 正斜杠和反斜杠
- 实现一个引导页的透明渐变效果
- Android6.0 显示系统(一) Surface创建
- SkinMagic的使用
- 如何使用SAP发送邮件?
- 第26周-window程序设计(基础篇)-第5章(图形基础)-SINEWAVE.C正弦波
- AJAX
- 用于查找文本的正则表达式
- C#将函数封装进dll,并在应用程序中调用
- 数据挖掘概念与技术 第一章 引论
- JAVA用树结构实现目录系统
- java 中几种去除空格的方法
- 最详细的Log4j使用教程(转载)
- JAVA笔记:double四舍五入并保留两位小数的方法