Function Reference


_WinAPI_MonitorFromRect

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

#include <WinAPIGdi.au3>
_WinAPI_MonitorFromRect ( $tRECT [, $iFlag = 1] )

Parameters

$tRECT $tagRECT structure that specifies the rectangle of interest in virtual-screen coordinates.
$iFlag [optional] The flag that specifies the function's return value if the rectangle 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 rectangle, or the value depends on the $MONITOR_* constant.

See Also

Search MonitorFromRect in MSDN Library.

Example

#include <WinAPIGdi.au3>
#include <WinAPISysWin.au3>

_Example()

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

        ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $hMonitor = ' & $hMonitor & @CRLF & '>Error code: ' & @error & '    Extended code: 0x' & Hex(@extended) & @CRLF) ;### Debug Console

        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