MultiMonitor-Support
Verfasst: 29.01.2012 18:38
Die folgenden Proceduren sind nicht auf meinen Mist gewachsen, bis auf kleinere Anpassungen, sollten IMHO
hier aber zusammengefasst gefunden werden.
DesktopFromPoint(x, y) ist von freak, original im engl. Forum: http://www.purebasic.fr/english/viewtop ... 51#p321351
Ich denke mal, man muss nicht erklären was die Procedure macht.
Die nächste Procedure baut auf STARGÅTE sein Beispiel auf und ist hier: http://www.purebasic.fr/german/viewtopi ... 62#p298762 zu finden
Wenn noch jemand speziellen Code für MultiMonitor-Support hat, einfach hier posten.
Gruß
Thomas
hier aber zusammengefasst gefunden werden.
DesktopFromPoint(x, y) ist von freak, original im engl. Forum: http://www.purebasic.fr/english/viewtop ... 51#p321351
Ich denke mal, man muss nicht erklären was die Procedure macht.
Code: Alles auswählen
Procedure DesktopFromPoint(x, y)
Protected Count = ExamineDesktops()
Protected i, dx, dy, dw, dh
For i = 0 To Count - 1
dx = DesktopX(i)
dy = DesktopY(i)
dw = DesktopWidth(i)
dh = DesktopHeight(i)
If x >= dx And x <= dx + dw And y >= dy And y <= dy + dh
ProcedureReturn i
EndIf
Next i
ProcedureReturn -1 ; point is outside of all monitors
EndProcedure
Code: Alles auswählen
EnableExplicit
Structure MaxDesktopsRes
CountDesktops.w
MinPos.w
MaxPos.w
MaxWidth.w
MaxHight.w
EndStructure
Procedure DesktopsMaxRes(*r.MaxDesktopsRes)
Protected Desktops.i = ExamineDesktops()
Protected Desktop.i
Protected X.i, Y.i, X1.i, Y1.i, X2.i, Y2.i
For Desktop = 0 To Desktops-1
If DesktopX(Desktop) < X
X1 = DesktopX(Desktop)
EndIf
If DesktopY(Desktop) < Y
Y1 = DesktopY(Desktop)
EndIf
If DesktopX(Desktop)+DesktopWidth(Desktop) > X2
X2 = DesktopX(Desktop)+DesktopWidth(Desktop)
EndIf
If DesktopY(Desktop)+DesktopHeight(Desktop) > Y2
Y2 = DesktopY(Desktop)+DesktopHeight(Desktop)
EndIf
Next
*r\CountDesktops = Desktops
*r\MinPos = X1
*r\MaxPos = Y2
*r\MaxWidth = X2-X1
*r\MaxHight = Y2-Y1
EndProcedure
Define res.MaxDesktopsRes
DesktopsMaxRes(@res)
Debug res\CountDesktops
Debug res\MinPos
Debug res\MaxPos
Debug res\MaxWidth
Debug res\MaxHight
Gruß
Thomas