ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Draw - Win32
    GUI/GDI 2009. 4. 8. 22:22
    GetSysColor()
    COLOR_3DFACE|COLOR_BTNTEXT

    InvalidateRect()

    on WM_ERASEBKGND
    윈도우 크래스에 등록된 배경 브러시로 작업영역을 지운다.
    c.f. InvalidateRect()

    WM_PAINT
    BeginPaint()
    EndPaint()

    GetClientRect()


    GDI(Graphic Device Interface)
    하드웨어 종류에 상관없이 통일된 방법으로 출력 // 하드웨어 독립
    모니터나 프린터 등의 여러 가지 출력 장비 개발 업체들이 윈도 운영 체제에서 동일한 방법으로 처리할 수 있는 디바이스 드라이버를 제공한다.

    DC(Device Context)
    BeginPaint()
    EndPaint()
    GetDC()
    ReleaseDC()
    CreateCompatibleDC()
    DeleteDC()

    CreateEnhMetaFile()
    CloseEnhMetaFile()
    GetEnhMetaFile()
    DeleteEnhMetaFile()
    PlayEnhMetaFile()

    RECT
    SetRect()
    InflateRect()
    IntersectRect()
    정규화되지 않은 사각형은 빈 영역으로 간주
    IsRectEmpty()
    정규화되지 않은 사각형은 빈 영역으로 간주
    PtInRect()
    정규화된 사각형만을 인수로 요구한다

    HRGN
    PtInRegion()

    윈도우
    논리 좌표가 사용되는 표면
    그래픽 출력 함수는 윈도우에 그래픽을 출력한다.

    뷰포트
    물리 좌표가 사용되는 영역
    실제로 사용자의 눈에 보이는 좌표 영역

    맵핑 모드
    논리 좌표와 물리 좌표의 관계를 정의

    MM_TEXT

    고정 크기 매핑 모드
    수학 좌표계 //?

    MM_LOENGLISH
    MM_HIENGLISH
    MM_LOMETRIC
    MM_HIMETRIC
    MM_TWIPS

    가변 크기 매핑 모드
    MM_ISOTROPIC
    MM_ANISOTROPIC
    논리 좌표계
        임의의 그래픽 디바이스

    디바이스 좌표계

    SetMapMode()
    GetMapMode()

    DPtoLP()
    LPtoDP()

    디폴트로 원점은 맵핑 모드에 상관없이 화면의 좌상단에 위치하고 있다.
    SetViewportOrgEx()
        specifies which device point maps to the window origin
        offset
    SetWindowOrgEx()
        specifies which window point maps to the viewport origin
        offset

    GDI는 현재 DC에 선택되어 있는 GDI 오브젝트를 사용한다.
    GDI 메모리는 프로세스가 소유하고 응용 프로그램이 종료될 때 해제된다.
    DC에 현재 선택되어 있는 GDI 오브젝트는 삭제할 수 없다.
    따라서 GDI 객체를 반드시 삭제해야 하고 객체를 삭제하기 전에, 디바이스 콘텍스트로부터 분리해야 한다.
    디바이스 컨텍스트 객체가 파괴될 때, 이와 관련된 모든 GDI 객체의 선택이 해제된다. // ???

    GDI 오브젝트
    DeleteObject()
    SelectObject()


    CreatePen()
    PS_INSIDEFRAME
    DeleteObject()
    브러시
    CreateSolidBrush()
    DeleteObject()
    폰트
    CreateFontIndirect()
    DeleteObject()
    비트맵
    화면 DC와 호환되는 비트맵을 생성해서 더블 버퍼링의 내부 버퍼로 사용될 수 있다.
    화면 DC와 호환되는 메모리 DC에 선택해서 그래픽 함수를 적용
    BitBlt()
    팔레트
    리전

    스톡 오브젝트 // 표준 GDI 오브젝트?
    GetStockObject()
    BLACK_PEN|NULL_BRUSH|NULL_PEN
    GetSysColorBrush() // 시스템 브러시?
    COLOR_HIGHLIGHT
    COLOR_WINDOW
    SetPixel()
    MoveToEx()
    LineTo()
    Rectangle()
    FillRect()
    Ellipse()
    Polygon()

    Point
    PointF
    Rect
    RectF


    GDI+
    Pen -> GdiplusBase
    .SetColor()
    .SetAlignment()
    PenAlignmentInset
    PenAlignmentCenter
    .SetStartCap()
    LineCapSquare
    LineCapRound
    LineCapTriangle

    LineCapSquareAnchor
    LineCapRoundAnchor
    LineCapDiamondAnchor
    LineCapArrowAnchor
    .SetEndCap()
    .SetLineJoin()
    LineJoinBevel
    LineJoinRound
    .SetDashStyle()
    DashStyleDash
    DashStyleDot
    DashStyleDashDot
    DashStyleDashDotDot
    .SetDashOffset()
    .SetDashPattern()
    Color

    SolidBrush -> Brush -> GdiplusBase
    .SetColor()

    LinearGradientBrush -> Brush

    GraphicsPath -> GdiplusBase
    .AddEllipse()

    PathGradientBrush -> Brush
    .SetCenterColor()
    .SetSurroundColors()

    HatchBrush -> Brush

    GraphicsPath -> GdiplusBase

    Region -> GdiplusBase

    Graphics
    .ResetTransform()
    .TranslateTransform()
    .SetPageUnit()
    UnitPixel
    UnitMillimeter
    .DrawLine()
    .DrawRectangle()
    .FillRectangle()
    .DrawEllipse()
    .FillEllipse()
    .DrawPie()
    .FillPie()
    .DrawArc()
    .DrawPolygon()    // 다각형
    .DrawClosedCurve()    // 닫힌 커브
    .FillClosedCurve()
    .DrawCurve()    // 열린 커브
    .DrawImage()
    .SetInterpolationMode()
    InterpolationModeNearestNeighbor
    InterpolationModeHighQualityBilinear
    .SetClip()

    참조 사이트:

Designed by Tistory.