指定領域との交差部分が最も広いモニタのハンドルを取得 <TOP>
MonitorFromRect 指定された四角形との交差部分が最も大きいディスプレイモニタへのハンドルを取得
'================================================================ '= 指定長方形領域との交差部分が最も広いモニタのハンドルを取得 '= (MonitorFromRect.bas) '================================================================ #include "Windows.bi" Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type #define MONITOR_DEFAULTTONEAREST &H2 '指定したウィンドウに最も近い位置にあるディスプレイモニタのハンドルが返る #define MONITOR_DEFAULTTONULL &H0 'NULLが返る #define MONITOR_DEFAULTTOPRIMARY &H1 'プライマリディスプレイモニタのハンドルが返る ' 指定された四角形との交差部分が最も大きいディスプレイモニタへのハンドルを取得 Declare Function Api_MonitorFromRect& Lib "user32" Alias "MonitorFromRect" (ByRef lprc As RECT, ByVal dwFlags&) Var Shared Text1 As Object Var Shared Button1 As Object Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14 Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 ShowWindow -1 '================================================================ '= '================================================================ Declare Function GetMonitorByRect(rc As RECT) As Long Function GetMonitorByRect(rc As RECT) As Long GetMonitorByRect = Api_MonitorFromRect(rc, MONITOR_DEFAULTTONEAREST) End Function '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var rc As RECT rc.Left = 650 rc.Right = 1243 rc.Top = 455 rc.Bottom = 950 hMonitor = GetMonitorByRect(rc) Text1.SetWindowText "hMonitor = &&H" & Hex$(hMonitor) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End