# Function Reference

# _WinAPI_SetBkMode

Sets the background mix mode of the specified device context

#include <WinAPIGdiDC.au3>
_WinAPI_SetBkMode ( $hDC, $iBkMode )

## Parameters

$hDC | Handle to device context
$iBkMode | Specifies the background mix mode. This parameter can be one of the following values. $OPAQUE - Background is filled with the current background color before the text, hatched brush, or pen is drawn. $TRANSPARENT - Background remains untouched.

## Return Value

Success: | Value specifies the previous background mix mode.
Failure: | 0

## Remarks

The background mix mode is used with text, hatched brushes, and pen styles that are not solid lines.
The _WinAPI_SetBkMode() function affects the line styles for lines drawn using a pen created by the _WinAPI_CreatePen() function.
_WinAPI_SetBkMode() does not affect lines drawn using a pen created by the _WinAPI_ExtCreatePen() function.
The $iBkMode parameter can also be set to driver-specific values. GDI passes such values to the device driver and otherwise ignores them.

## Related

_WinAPI_CreatePen, _WinAPI_DrawText, _WinAPI_GetBkMode, _WinAPI_SelectObject

## See Also

Search SetBkMode in MSDN Library.

## Example

    #include <FontConstants.au3>
    #include <MsgBoxConstants.au3>
    #include <StructureConstants.au3>
    #include <WinAPIGdi.au3>
    #include <WinAPIGdiDC.au3>
    #include <WinAPIHObj.au3>
    #include <WinAPISysWin.au3>

    Global $g_tRECT, $g_hFont, $g_hOldFont, $g_hDC

    HotKeySet("{ESC}", "_Exit")

    $g_tRECT = DllStructCreate($tagRECT)
    DllStructSetData($g_tRECT, "Left", 5)
    DllStructSetData($g_tRECT, "Top", 5)
    DllStructSetData($g_tRECT, "Right", 250)
    DllStructSetData($g_tRECT, "Bottom", 50)

    $g_hDC = _WinAPI_GetDC(0)
    $g_hFont = _WinAPI_CreateFont(50, 0, 0, 0, 400, False, False, False, $DEFAULT_CHARSET, _
            $OUT_DEFAULT_PRECIS, $CLIP_DEFAULT_PRECIS, $DEFAULT_QUALITY, 0, 'Arial')
    $g_hOldFont = _WinAPI_SelectObject($g_hDC, $g_hFont)

    _WinAPI_SetTextColor($g_hDC, 0x0000FF)
    _WinAPI_SetBkColor($g_hDC, 0x000000)

    MsgBox($MB_SYSTEMMODAL, "Information", "GetBkMode: " & _WinAPI_GetBkMode($g_hDC))

    ; comment next line to get black background instead of transparent one
    _WinAPI_SetBkMode($g_hDC, $TRANSPARENT)

    MsgBox($MB_SYSTEMMODAL, "Information", "GetBkMode: " & _WinAPI_GetBkMode($g_hDC))

    While 1
        _WinAPI_DrawText($g_hDC, "Hello world!", $g_tRECT, $DT_CENTER)
        Sleep(100)
    WEnd

    Func _Exit()
        _WinAPI_SelectObject($g_hDC, $g_hOldFont)
        _WinAPI_DeleteObject($g_hFont)
        _WinAPI_ReleaseDC(0, $g_hDC)
        _WinAPI_InvalidateRect(0, 0)
        $g_tRECT = 0
        Exit
    EndFunc   ;==>_Exit