# Function Reference

# _WinAPI_MonitorFromWindow

Retrieves a handle to the display monitor that has the largest area of intersection with the specified window

#include <WinAPIGdi.au3>
_WinAPI_MonitorFromWindow ( $hWnd [, $iFlag = $MONITOR_DEFAULTTONEAREST] )

## Parameters

$hWnd | A handle to the window of interest.
$iFlag | [optional] The flag that specifies the function's return value if the window does not intersect any display monitor. This parameter can be one of the following values. $MONITOR_DEFAULTTONULL $MONITOR_DEFAULTTONEAREST (Default) $MONITOR_DEFAULTTOPRIMARY

## Return Value

Returns the handle to the monitor that has the largest area of intersection with the window, or the value depends on the $MONITOR_* constant.

## Remarks

If the window is currently minimized, the function uses the rectangle of the window before it was minimized.
Constants are defined in APIGdiConstants.au3

## See Also

Search MonitorFromWindow in MSDN Library.

## Example

    #include <WinAPIGdi.au3>

    _Example()

    Func _Example()
        Local $hWindow = WinGetHandle("[REGEXPTITLE:(?i)(.*" & @ScriptName & ".*SciTE.*?)]")
        Local $hMonitor = _WinAPI_MonitorFromWindow($hWindow, $MONITOR_DEFAULTTONULL)

        Local $aData = _WinAPI_GetMonitorInfo($hMonitor)
        If Not @error Then
            ConsoleWrite('Handle:      ' & $hMonitor & @CRLF)
            ConsoleWrite('Rectangle:   ' & DllStructGetData($aData[0], 1) & ', ' & DllStructGetData($aData[0], 2) & ', ' & DllStructGetData($aData[0], 3) & ', ' & DllStructGetData($aData[0], 4) & @CRLF)
            ConsoleWrite('Work area:   ' & DllStructGetData($aData[1], 1) & ', ' & DllStructGetData($aData[1], 2) & ', ' & DllStructGetData($aData[1], 3) & ', ' & DllStructGetData($aData[1], 4) & @CRLF)
            ConsoleWrite('Primary:     ' & $aData[2] & @CRLF)
            ConsoleWrite('Device name: ' & $aData[3] & @CRLF)
        EndIf
    EndFunc   ;==>_Example