DC 를 얻는 첫 번째 방법
HDC GetDC( HWND hWnd );
int ReleaseDC( HWND hWnd, HDC hDC );
DC 는 주로 하나의 윈도우와 연관되는 출력 정보를 가진다. 그래서 인수로 어떤 윈도우에 대한 DC 가 필요한가를 밝혀야 한다. GetDC 는 hWnd 가 가리키는 윈도우에 적당한 DC 를 만들어 그 핸들을 리턴한다.
GetDC 에 의해 얻어진 핸들은 사용 후에 반드시 ReleaseDC 함수로 해제해야 한다.
DC 를 얻는 두 번째 방법
HDC BeginPaint( HWND hWnd, LPPAINTSTRUCT lpPaint );
BOOL EndPaint( HWND hWnd, CONST PAINTSTRUCT *lpPaint );
WM_PAINT 메시지 루틴에서만 사용할 수 있다.
BeginPaint 함수는 윈도우 핸들 외에도 페인트 정보 구조체를 인수로 요구하며 이 구조체에 그림 그리기에 필요한 여러 가지 복잡한 정보를 리턴한다.
typedef structPAINTSTRUCT
{
HDC hdc;
BOOL fErase;
RECT rcPaint;
BOOL fRestore;
BOOL flncUpdate;
BYTE rgbReserved[16];
} PAINTSTRUCT;
앞의 세 멤버는 사용자가 사용하는 멤버이며 나머지 세 멤버는 윈도우즈가 내부적으로 사용하므로 사용자가 건드려서는 안 된다.