API PAINT & 프레임워크 구축(1)

Gloz·2022년 11월 13일
0

API에 대한 내용

목록 보기
3/11

PAINT

▶ WM_PAINT

  • 윈도우를 다시 그려야할 때 발생하는 메세지
  1. 윈도우가 처음 만들어졌을때

  2. 윈도우 크기를 조절할 때

  3. 윈도우가 다른 윈도우에 가려졌다가 다시 보일때

  4. 함수 호출시: InvalidateRect, Invalidate, UpdateAllViews 등...

switch(iMessage)
{

case WM_PAINT:		// 출력에 관한 모든 것을 담당한다. (문자, 그림, 도형 등등.. )
	hdc = BeginPaint(hWnd,&ps)
 	// 이곳에 출력에 관한 코딩을 하면 된다.
    
    // 1. 픽셀 충돌
    SetPixel(hdc, 300, 200, RGB(255,0,0);
    
    // 2. 원 충돌
    // 게임 업계에서 충돌에 관해 아주 빠름 ( 원 반지름 안에 들어오면 충돌이 발생하는 심플한 애)
    // 원의 중점을 구해주고 반지름을 구해주고 반지름 안에 들어오면 충돌발생
    Ellipse(hdc, 300, 100, 200, 200);
    
    // 3. ABB/ OBB에서 사용될 애
    // 가장 보편적으로 쓰이고 있는 애
    Rectangle(hdc,100,100,200,200);
    
    // 보통 RECT를 쓸 때 변수를 이용하여 상대방과 내가 충돌했는지 이런것들을 알아야함.
    Rectangle(hdc, rc.left, rc.top, rc.right, rc.bottom);
    
    // API에서는 기본적으로 RECT충돌을 함
    
    EndPaint(hWnd,&ps);
    break;
}




API 프레임워크 구축(1)

  • 프레임 워크를 왜 구축할까?
    • 가독성과 편의성, 헤더 중복 로드 방지를 위한 밑 작업
    • 미리 컴파일된 헤더 Stdafx
    • 매크로 함수
  • Stdafx 헤더파일안에 우리가 쓸 헤더파일들을 다 넣는다.

  • 사용자 정의 함수를 따로 만들어서 우리가 평상시에 자주 쓰는 함수들을 모아 넣는다.
    ( 그렇다면 굳이 길게 작성하지 않고 사용자 정의 헤더파일에서 불러와 쓴다면 더욱 편리하다 )

profile
개발자가 되기 위해 조금씩 나아가겠습니다.

0개의 댓글