/ / by transferring the origin of coordinates to achieve the sine curve, the array components can decrease the mobile
/ / 2 * NUM, but to open up area for that array.
# include
# contain
# outline ID_TIMER 1
# define NUM one thousand
# outline Stage ten / / Every phase of transferring
# define TWOPI (2 * three.14159)
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain ( ; HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName [] = TEXT (hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style ; = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbCl######tra = 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 (szAppName, MB_ICONERROR);
return 0;
hwnd = CreateWindow (szAppName , TEXT (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;
static POINT apt [2 * NUM];
static HPEN hPen1, hPen2;
static int step;
switch (message)
{
case WM_SIZE:
cxClient = LOWORD (lParam);
cyClient = HIWORD (lParam);
for (i = 0; i <2 * NUM; i + +)
apt [i]. x = (int) (i * cxClient / NUM);
apt [i]. y = (int) (cyClient * (1 - sin (TWOPI * i / NUM)) / 2);
return 0;
case WM_CREATE:
hPen1 = CreatePen (PS_SOLID,
Office 2007 Enterprise, 4, RGB (255,0,0));