在左键单击时保存位置到pt[]数组中,
然后在右键单击时,让窗口重绘,
在wm_paint消息中绘制图形.窗口过程如下:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
TCHAR szHello[MAX_LOADSTRING];
static POINT pt[MAXPOINT];
static int nCount=0;
int i,j;
switch (message) 
{
case WM_COMMAND:
wmId    = LOWORD(wParam); 
wmEvent = HIWORD(wParam); 
// Parse the menu selections:
switch (wmId)
{
case IDM_ABOUT:
   DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
   break;
case IDM_EXIT:
   DestroyWindow(hWnd);
   break;
default:
   return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_LBUTTONDOWN:
pt[nCount].x=LOWORD(lParam);
pt[nCount].y=LOWORD(lParam);
SetPixel(hdc,LOWORD(lParam),HIWORD(lParam),RGB(255,0,0));
nCount++;
break;
case WM_RBUTTONDOWN:
InvalidateRect(hWnd,NULL,TRUE);
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: Add any drawing code here...
SetCursor(LoadCursor(NULL,IDC_WAIT));
ShowCursor(TRUE);
for (i=0;i<nCount-1;i++)
{
for (j=i+1;j<nCount;j++)
{
MoveToEx(hdc,pt[i].x,pt[i].y,NULL);
LineTo(hdc,pt[j].x,pt[j].y); }
}
ShowCursor(FALSE);
SetCursor(LoadCursor(NULL,IDC_ARROW)); RECT rt;
GetClientRect(hWnd, &rt);

EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
   }
   return 0;
}
可是效果却不是我想要的,这是哪里出错了呢?