LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
static bool Check = false;
int xPos;
int yPos;
static int xPos1;
static int yPos1;
int xPos2;
int yPos2;
switch (iMessage) {
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_LBUTTONDOWN :
// lParam 에 x,y 좌표 정보가 저장되고 rParam 에는 조합키정보가 들어감. MSDN 참고.
/**************** 클릭한 두점을 이용한 사각형 만들기 ************************/
xPos = LOWORD(lParam);
yPos = HIWORD(lParam);
if(Check==false)
{
// 첫번째 입력 데이터 저장.
xPos1 = xPos;
yPos1 = yPos;
Check=true;
}
else
{
// 두번째 입력 데이터 저장.
xPos2 = xPos;
yPos2 = yPos;
hdc = GetDC(hWnd);
Rectangle(hdc,xPos1,yPos1,xPos2,yPos2);
ReleaseDC(hWnd,hdc);
Check=false;
}
/*********************************************************************************/
case WM_PAINT:
hdc=BeginPaint(hWnd,&ps);
SetPixel(hdc,10,10,RGB(255,0,0)); // 픽셀(점) 찍기
MoveToEx(hdc,50,50,NULL); // CP값 지정하기 :: CP는 DC값을 새로 가져올때마다 다시 초기화 됨.
[ MoveToEx(DC핸들, x좌표,y좌표, 이전 CP값 저장) ]
LineTo(hdc,300,90); // CP값을 기준으로 줄 긋기
[ LineTo(hdc,x좌표,y좌표) ]
Rectangle(hdc,50,100,200,180); // 사각형 그리기
[ Rectangle(Left Pos , Top Pos, Right Pos, Bottm Pos ) ]
Ellipse(hdc,220,100,400,200); // 사각형을 내접하는 원이 그리기.
[ Ellipse(Left Pos , Top Pos, Right Pos, Bottm Pos ) ]
EndPaint(hWnd,&ps);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
|