ich stehe vor einem Problem, das wohl primär mit Bildschirmauflösungen zu tun hat. Folgende Ausgangssituation:
Ich habe zwei PCs, an die ich jeweils ein Tablet als zweiten Monitor angeschlossen habe. Dies mache ich über die Software SpaceDesk, die dazu einfach das Tablet als nativen zweiten Monitor anbindet. Die Tablets sind im Hochformat mit 768x1024 Pixel konfiguriert.
Nun habe ich folgendes Problem: Beim ersten Rechner, dessen Haupt-Monitor eine Auflösung von 1920 x 1080 besitzt, funktioniert der untenstehende Code einwandfrei, die UserForm wird auf dem zweiten Monitor, also Tablet, komplett angezeigt. Beim zweiten PC, dessen Haupt-Monitor eine Auflösung von nur 1360 x 800 hat, wird beim Anzeigen der UserForm auf dem Tablet alles abgeschnitten, was über 800 Pixeln liegt. D.h., dass die UserForm lediglich von Pixel 1 bis Pixel 800 in der Höhe auf dem Tablet angezeigt wird, alles was sich zwischen 800 und 1024 befindet, wird abgeschnitten. Das ist natürlich mehr als blöd, da dort CommandButtons und ein InkImage zur Stifteingabe lokalisiert sind. Letzten Endes möchte ich, dass die UserForm auf dem zweiten Monitor (also Tablet) jeweils maximiert bildfüllend dargestellt wird, ohne Scrollbalken o.ä.
Das Ganze wird durch einen Klick auf einen CommandButton ausgeführt. Könnt ihr mir hier weiterhelfen?
Private Declare Function GetSystemMetrics Lib "user32.dll" (ByVal nIndex As Long) As Long
Private Sub Anzeigen_Unterschrift()
'Aktiven Monitor für UserForm10 festlegen
Const cintMonitor As Integer = 2
Application.WindowState = xlMaximized
With UserForm10
.Left = (cintMonitor - 1) * GetSystemMetrics(0) + 1
.Height = Application.Height
.Width = Application.Width
.Show
End With
End Sub
Vielen lieben Dank!Grüße, Tobias