16,471
社区成员
发帖
与我相关
我的任务
分享
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;
}