/ / by moving the origin of coordinates to achieve the sine curve, the array elements can decrease the cellular
/ / 2 * NUM, but to open up area for your array.
# contain
# consist of
# define ID_TIMER 1
# define NUM a thousand
# outline Step 10 / / Every phase of shifting
# define TWOPI (2 * three.14159)
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain ( ; HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine,
Microsoft Office 2007 Key, 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, 4, RGB (255,0,0));