본문 바로가기

Language/API

DC만들기

LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage,WPARAM wParam, LPARAM lParam)
{
    HDC hdc;//DC핸들 선언.
    switch(iMessage)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    case WM_PAINT:
        hdc = GetDC(hWnd);//DC를 가지고온다.
        TextOut(hdc,100,100,TEXT("Beautiful Korea"),15);
        ReleaseDC(hWnd,hdc);//DC를 해제한다.
        return 0;
    }
    return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

DC를 얻기 위해서는 WM_PAINT 메시지루틴에서만 사용가능하다.
GetDC로 얻지 않고 BeginPatin 함수로 얻게 되면 EndPaint 함수로 해제하면 된다.

    HDC hdc;//DC핸들 선언.
    PAINTSTRUCT ps;//BeginPatin 구조체 선언.
    switch(iMessage)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    case WM_PAINT:
        hdc = BeginPaint(hWnd,&ps);//DC를 가지고온다.
        TextOut(hdc,100,100,TEXT("Beautiful Korea"),15);
        EndPaint(hWnd,&ps);//DC를 해제한다.
        return 0;
    }
    return(DefWindowProc(hWnd,iMessage,wParam,lParam));
BeginPaint 가 그릴때 끈낌이 덜하다.