godurum/일반

2D테트리스만들기 2. 화면다루기 1) 사각형그리기

민성아빠 2004. 5. 12. 11:17
####################################################
   2D테트리스만들기

             2. 화면다루기

                  1) 사각형그리기

####################################################

안녕하세요.  제가 요즘 신경쓸 일이 많아서 강좌가 늦엇네요.  머리털도 많이 빠졌구

흰머리도 많이 보이네요. ㅎㅎ

이전 까지는 이론이라서 한번정도 읽어보면 이해 하셨을거라 믿습니다.   이제부터는

차근차근 강의 하면서 넘어가도록 하겟습니다.  

이번 강의 내용은 사각형 그리기 입니다.   다른 방법도 많겠지만 쉽게 사용할 수 있는

Rectangle을 사용해 보았습니다.

바로 전에 배운 내용에서 추가하도록 하겠습니다.

//------------실전 예 시작------------------

...

void OnPaint(HWND hwnd)
{
    HDC hdc; // 디바이스컨텍스트라는 핸들을 생성한다.(페인트에필수)
    PAINTSTRUCT ps; //(페인트에필수)

    hdc = BeginPaint(hwnd, &ps);

    SelectObject(hdc, GetStockObject(BLACK_PEN));
    // 핸들에 어떤 팬으로 그림을 그릴지 결정

    Rectangle(hdc, 300, 100, 500, 500);

    EndPaint(hwnd, &ps);
}

...


//------------실전 예 끝------------------


1) 사각형그리기

여기서 등장한 함수는 상세히 알 필요는 없구 이럴 때 쓰이는 구나 정도만 알아두시면

편합니다.

SelectObject :

      그림 그리기 위해 꼭 필요한 함수며

      첫번째 인자hdc는 BeginPaint로 생성한 디바이스컨텍스트핸들을 사용합니다.  
            디바이스컨텍스트핸들은 쉽게 말해서 초등학교때  많이 사용햇던 도화지라구
            생각하시면 될겁니다.

      두번째 인자는 도화지에 그릴 도구를 결정하는 것입니다.

GetStockObject :

     pens, brushes, fonts, or palettes 등을 가져올 수 있습니다.   여기서는 윈도우에서

     정해 놓은 BLACK_PEN을 사용했습니다.    참고로 pen은 선을 그릴때 쓰이구 brushe는

     색을 칠할때 쓰입니다.

Rectangle :

     사각형을 만들때 쓰이는 함수입니다.  

     첫번째 인자는 hdc 그릴 도화지를 선택하구  
     두번째 인자는 x 축 시작 지점  
     세번째 인자는 y 축 시작 지점
     네번째 인자는 x 축 끝나는 지점 x축 시작 지점 + 길이가 됩니다.
     다섯번째 인자는 y 축 끝나는 지점 y축 시작 지점 + 길이가 됩니다.