GetDC() 함수의 경우, case WM_PAINT: 에서 무효화 영역을 해제하는 역할까지 겸하는 BeginPaint()와는 다르게
오롯이 그림을 그리기만 할 목적으로 HDC(m_hdc) 객체, 즉, 그림을 그릴 스케치북과도 같은 판이 필요할 때 이용한다.
(주로 타 함수로 분리해서 작업하는 경우, GetDC()를 쓰게 된다.)
class CCore
{
SINGLE(CCore);
private:
HWND m_hWnd; // 메인 윈도우 핸들
HDC m_hDC; // 메인 윈도우에 Draw 할 DC
public:
int init(HWND _hWnd, POINT _ptResolution);
void progress();
};
CCore::~CCore()
{
// static으로 싱글톤 처리된 Core 종료 시점에 해제,
// 즉, 프로그램이 종료될 때까지 HDC 객체를 가지고 있다가 종료될 때가 되어서야 해제
// (static 멤버 변수는 데이터 영역에 적재되는데, 이 데이터 영역은 프로그램 종료 시점에 소멸)
ReleaseDC(m_hWnd, m_hDC);
}
int CCore::init(HWND _hWnd, POINT _ptResolution)
{
m_hWnd = _hWnd;
...
// 프로그램 시작 시점에 GetDC()로 HDC를 멤버변수로 보유시킨다.
m_hDC = GetDC(m_hWnd);
return S_OK;
}
위 코드에서, GetDC()로 받은 m_hDC에 그림을 그리게 되면, 우리의 Window 창에 그림을 그리는 것이 되는 것이다.
'(2022) 공부 (Study) > 게임 개발 (Development)' 카테고리의 다른 글
[Win32API] GetAsyncKeyState() 와 키 입력 받기 (1) (0) | 2022.04.13 |
---|---|
[Win32API] 오브젝트 이동 : 시간 동기화 (2) (0) | 2022.04.13 |
[Win32API] 오브젝트 이동 : 시간 동기화 (1) (0) | 2022.04.13 |
[Win32API] GetTickCount64를 이용한 호출 횟수 및 프레임 체크 (0) | 2022.04.13 |
[Win32API] BeginPaint()와 무효화 영역의 관계 (0) | 2022.04.13 |