Brush

The Brush structure contains functions and structures to create and operate on brushes.   Brushes are used to fill areas of the screen with single colours or patterns.

structure Brush:

  sig

    type HBITMAP and HBRUSH and HDC



    datatype

      HatchStyle =

          HS_BDIAGONAL

        | HS_CROSS

        | HS_DIAGCROSS

        | HS_FDIAGONAL

        | HS_HORIZONTAL

        | HS_VERTICAL



    datatype

      BrushStyle =

          BS_HATCHED of HatchStyle

        | BS_HOLLOW

        | BS_PATTERN of HBITMAP

        | BS_SOLID



    type COLORREF = Color.COLORREF



    type LOGBRUSH = BrushStyle * COLORREF

    type POINT = {x: int, y: int}

    type RasterOpCode = Bitmap.RasterOpCode



    datatype ColorType =

		COLOR_SCROLLBAR

	|	COLOR_BACKGROUND

	|	COLOR_ACTIVECAPTION

	|	COLOR_INACTIVECAPTION

	|	COLOR_MENU

	|	COLOR_WINDOW

	|	COLOR_WINDOWFRAME

	|	COLOR_MENUTEXT

	|	COLOR_WINDOWTEXT

	|	COLOR_CAPTIONTEXT

	|	COLOR_ACTIVEBORDER

	|	COLOR_INACTIVEBORDER

	|	COLOR_APPWORKSPACE

	|	COLOR_HIGHLIGHT

	|	COLOR_HIGHLIGHTTEXT

	|	COLOR_BTNFACE

	|	COLOR_BTNSHADOW

	|	COLOR_GRAYTEXT

	|	COLOR_BTNTEXT

	|	COLOR_INACTIVECAPTIONTEXT

	|	COLOR_BTNHIGHLIGHT

	|	COLOR_3DDKSHADOW

	|	COLOR_3DLIGHT

	|	COLOR_INFOTEXT

	|	COLOR_INFOBK



    val CreateBrushIndirect : LOGBRUSH -> HBRUSH

    val CreateHatchBrush : HatchStyle * COLORREF -> HBRUSH

    val CreatePatternBrush : HBITMAP -> HBRUSH

    val CreateSolidBrush : COLORREF -> HBRUSH

    val GetSysColorBrush : ColorType -> HBRUSH

    val GetBrushOrgEx : HDC -> POINT

    val PatBlt : HDC * int * int * int * int * RasterOpCode -> unit

    val SetBrushOrgEx : HDC * POINT -> POINT

  end