|
: case WM_LBUTTONDOWN:
: ptMouse.x = LOWORD(lParam);
: ptMouse.y = HIWORD(lParam);
:
: if(!PtInRect(&rtBoard, ptMouse))
: {
: ix = iy = -1;
: }
: else
: { ix = (ptMouse.x - rtBoard.left)/nWidth;
: iy = (ptMouse.y - rtBoard.top)/nHeight;
: }
: InvalidateRect(hWnd, NULL, TRUE);
: break;
1. 바둑판은 사용자가 보는 모습이고
2. 클릭되는 곳은 프로그램이 사용하는 데이터임
2.1 클릭 데이터를 만든다.
int ix[9] = { ,...};
int iy[9] = { ,...};
2.2 클릭 처리 함수를 만든다
int IsInRect(int x, int y);
3. 이벤트 구현
case WM_LBUTTONDOWN:
{
int x = LOWORD(lParam);
int y = HIWORD(lParam);
int nRes = IsInRect(x, y);
if( nRes > 0)
{
flag = nRes; // flag 전역변수
InvalidateRect(--);
}
}break;
4. 그리기 함수 추가
if( flag) 타원그리기
|