블로그 이미지
하루, 글. 그림. 영상매체. 표현을 도와주는 기기들. 도전 중. 동화다아아
    동화다아아

    카테고리

    분류 전체보기 (176)
    잡담 (1)
    IT 기기-리뷰&뉴스 (7)
    리뷰 - 도서 (1)
    리뷰 - 영상 (0)
    리뷰 - 그림/음악 (1)
    내장형 하드웨어 (163)
    Total
    Today
    Yesterday

    - 스톡 오브젝트
    →  윈도우가 미리 제공하는 GDI 오브젝트를 말한다.
    →  아주 빈번하게 사용되므로 운영체제가 부팅할 때부터 미리 만들어 놓는다. 일부러 만들지 않아도 얼마든지 사용할 수 있으며 사용하고 난 후에 필요도 없다.
    →  다음 함수로 핸들을 얻어 사용한다.

    HGDIOBJ GetStockObject(int fnObjet);

    →  fnObject 인수에 사용하고자 하는 스톡 오브젝트를 지정한다.
     

    예제 : GdiObject

     

    LRESULT OnPaint(HWND hWnd, WPARAM wParam, LPARAM lParam)
    {
           HDC hdc;
           PAINTSTRUCT ps;
           HBRUSH MyBrush, OldBrush;
     
           hdc 
    = BeginPaint(hWnd, &ps); // DC를 얻는다.
           MyBrush = (HBRUSH)GetStockObject(GRAY_BRUSH); 
           OldBrush 
    = (HBRUSH)SelectObject(hdc, MyBrush); 
           Rectangle(hdc, 
    5050300200); // 사각형을 그린다.
           SelectObject(hdc, OldBrush);
           EndPaint(hWnd, 
    &ps); // 그리기 종료
           return 0;
    }
    LRESULT OnDestroy(HWND hwnd, WPARAM wParam, LPARAM lParam)
    {
           PostQuitMessage(
    0);
           
    return 0;
    }

    → 브러시 핸들을 저장할 변수 두개를 선언하는데 MyBrush는 그리기에 사용할 브러시 핸들이고 OldBrush는 원래의 브러시를 잠시 저장하기 위한 용도로 사용한다.
    → GetStockObject 함수로 회색의 브러시(GRAY_BRUSH) 핸들을 얻되 MyBrush 변수에 대입하기 위해 (HBRUSH)형으로 캐스팅했다.
    → GetStockObject 함수는 여러 종류의 스톡 오브젝트를 리턴하므로 대입하기 전에 원하는 타입으로 캐스팅해야 한다.

    → 구현 브러시를 사용하기 위해 GDI 오브젝트를 DC에 선택하는데 이 때는 다음 함수를 사용한다.

    HGDIOBJ SelectObject(HDC hdc, HGDIOBJ hgdiobj);

    →  첫 번째 인수로 DC의 핸들을 주고 두 번째 인수로 GDI 오브젝트의 핸들을 주면 DC에 해당 오브젝트를 선택한다.
    →  이후부터 GDI는 그래픽을 출력할 때 선택된 오브젝트를 사용한다. SelectObject가 리턴한ㄴ 값은 새로 선택되는 오브젝트 이전에 선택되어 있던 같은 종류의 오브젝트 핸들이다.

    실습
    →  겹쳐지는 두개의 사각형을 생성하고 한쪽은 GRAY_BRUSH, 한쪽은 NULL_BRUSH 사용
    →  출력 결과

    '내장형 하드웨어 > WINAPI' 카테고리의 다른 글

    WINAPI - 그리기 모드  (0) 2011.09.09
    WINAPI - 그래픽(색상)  (0) 2011.09.08
    WINAPI - WM_COMMAND  (0) 2011.09.06
    WINAPI - 리소스(메뉴 생성 첫번째)  (0) 2011.09.05
    WINAPI - 소스분석 첫번째  (0) 2011.08.22
    Posted by 동화다아아
    , |

    최근에 달린 댓글

    최근에 받은 트랙백

    글 보관함