首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

help 急该怎么解决

2012-02-19 
help急谁帮我用mfc编以下程序绘制正弦曲线ysin(A*x+B),2周期长要求:(1)A、B值以及x轴和y轴的长度和原点在

help 急
谁帮我用mfc编以下程序 
绘制正弦曲线y=sin(A*x+B),2周期长 
要求:(1)A、B值以及x轴和y轴的长度和原点在窗口中的位置由无模式对话框输入得到 
(2)曲线的颜色和粗细通过工具按钮或(和)菜单命令来改变 

把源代码发到 sheshou112@yahoo.com.cn 
感激不尽

[解决办法]

C/C++ code
Windows程序设计第五版里面的例子,自己看看吧/*-------------------------------          SINEWAVE.C -- Sine Wave Using Polyline                   (c) Charles Petzold, 1998        ---------------------------------*/        #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) ;                    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) ;        } 

热点排行