윈도우즈 프로그래밍 5주차

2022. 4. 16. 03:21학교수업

더블 버퍼링

	CRect rect;
	GetClientRect(&rect);

	CDC memDc;
	memDc.CreateCompatibleDC(&dc);
	CBitmap bitmap;
	bitmap.CreateCompatibleBitmap(&dc, rect.right, rect.bottom);
	memDc.SelectObject(&bitmap);
	memDc.Rectangle(rect);

	dc.BitBlt(0, 0, rect.Width(), rect.Height(), &memDc, 0, 0, SRCCOPY);

키보드 이동

void CChildView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
	CClientDC dc(this);
	switch (nChar)
	{
	case VK_LEFT:
		_rectPos.x -= 10;
		break;
	case VK_RIGHT:
		_rectPos.x += 10;
		break;
	case VK_UP:
		_rectPos.y -= 10;
		break;
	case VK_DOWN:
		_rectPos.y += 10;
		break;
	default:
		break;
	}
	Invalidate();

	CWnd::OnKeyDown(nChar, nRepCnt, nFlags);
}

사각형 그리기

int length = 25;
	CBrush brush(RGB(0, 0, 255));
	dc.SelectObject(brush);
	dc.Rectangle(_rectPos.x - length, _rectPos.y - length, _rectPos.x + length, _rectPos.y + length);

'학교수업' 카테고리의 다른 글

UNIX 서버 5주차  (0) 2022.04.19
UNIX서버 4주차  (0) 2022.04.19
윈도우즈 프로그래밍 6주차  (0) 2022.04.16
컴퓨터 구조 6주차  (0) 2022.04.13
인공지능개론 6주차  (0) 2022.04.13