Wie Größe Sie Ihr Formulars in VB6, so dass Form untere Grenze an der Spitze der Taskleiste istFormular Sizing Bildschirmabmessungen zu füllen minus Taskleiste
Antwort
Gibt es einen Grund, warum Sie können nicht einfach das Formular maximieren? Das wäre mein erster Eindruck.
Wenn das nicht ein Läufer, könnten Sie versuchen, die Taskleiste Höhe auf folgende Weise erhalten:
Private Const ABM_GETTASKBARPOS = &H5
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Type APPBARDATA
cbSize As Long
hwnd As Long
uCallbackMessage As Long
uEdge As Long
rc As RECT
lParam As Long
End Type
Private Declare Function SHAppBarMessage Lib "shell32.dll" (ByVal dwMessage As Long, pData As APPBARDATA) As Long
Function GetTaskBarSize()
Dim ABD As APPBARDATA
SHAppBarMessage ABM_GETTASKBARPOS, ABD
MsgBox "Width:" & ABD.rc.Right - ABD.rc.Left
MsgBox " Height:" & ABD.rc.Bottom - ABD.rc.Top
End Sub
und dann auf die Höhe des Bildschirms Ihrer Form der Höheneinstellung weniger die Höhe der Taskleiste.
Einstellung der rhe Fenster zu vbmaximized, wie Sie vorgeschlagen, macht den Trick..oh die Breite meiner Ignoranz! – kjack
Minus nur die Taskleiste? Das ist vielleicht nicht das, was du willst. Es kann andere Fenster an den Rändern des Bildschirms geben, die Bereiche des Desktops "ausschneiden" sollen. Beachten Sie auch, dass die Höhe der Taskleiste manchmal irrelevant ist, z. B. wenn es an der linken oder rechten Seite des Bildschirms angedockt ist.
Galwegian hat gezeigt, wie man die Höhe der Taskleiste erreicht, aber wenn Sie wirklich nach dem nutzbaren Bereich des Desktops suchen, verwenden Sie stattdessen die SystemParametersInfo
-Funktion mit dem spi_GetWorkArea
-Flag. Es wird Ihnen den Bereich des Desktops ohne alle Desktop-Symbolleisten anzeigen. MSDN empfiehlt, wenn Sie sich für den verfügbaren Speicherplatz auf einem anderen als dem primären Monitor interessieren, sollten Sie stattdessen GetMonitorInfo
aufrufen; es füllt einen Datensatz und eines der Felder ist für den Arbeitsbereich des Monitors.
Ich werde die Idee, dass Sie wirklich nur wollen, um Ihr Fenster zu maximieren. Wenn Sie das bereits getan haben und wissen möchten, wie viel Platz Sie einnehmen, erhalten Sie die aktuelle Größe Ihres Fensters und subtrahieren Sie dann die Abmessungen Ihres Fensterrahmens (die unter den Kanten von "versteckt" sind) der Desktop, wenn ein Fenster maximiert ist). Sie können GetSystemMetrics
mit den Flags sm_CXFrame
und sm_CYFrame
dafür verwenden.
Vielen Dank für Ihre Hilfe Ich brauche nicht mehr als nur um ein Formular zu maximieren, nur jetzt die zusätzlichen Informationen sind interessant, aber – kjack
Ich werde zustimmen, dass Sie wahrscheinlich Ihr Fenster maximieren möchten.
Aber wenn Sie wirklich den Bereich des Desktops mit Ausnahme aller Desktop-Symbolleisten (Taskleiste, Microsoft Office-Symbolleiste usw.) kennen möchten, hier einige VB6-Deklarationen für den SystemParametersInfo-Aufruf und eine Beispielfunktion, die Formulare auf dem Bildschirm zentriert, Berücksichtigung der Symbolleisten. Dies ist von 101 tech tips (PDF) aus dem alten Visual Basic Programmers Journal ausgeliehen.
Private Const SPI_GETWORKAREA = 48
Private Declare Function SystemParametersInfo& Lib "User32" Alias "SystemParametersInfoA" (_
ByVal uAction As Long, _
ByVal uParam As Long, lpvParam As Any, _
ByVal fuWinIni As Long)
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Public Function CenterForm32 (frm As Form)
Dim ScreenWidth&, ScreenHeight&, ScreenLeft&, ScreenTop&
Dim DesktopArea As RECT
Call SystemParametersInfo (SPI_GETWORKAREA, 0, DesktopArea, 0)
ScreenHeight = (DesktopArea.Bottom - DesktopArea.Top) * Screen.TwipsPerPixelY
ScreenWidth = (DesktopArea.Right - DesktopArea.Left) * Screen.TwipsPerPixelX
ScreenLeft = DesktopArea.Left * Screen.TwipsPerPixelX
ScreenTop = DesktopArea.Top * Screen.TwipsPerPixelY
frm.Move (ScreenWidth - frm.Width)/2 + ScreenLeft, _
(ScreenHeight - frm.Height)/2 + ScreenTop
End Function
Danke für den Link zu diesem pdf gab es eine Menge nützlicher Tipps drin und ich habe es heruntergeladen – kjack
- 1. Sizing-Formular zu Control.Bounds.Bottom schafft unerwartetes Ergebnis
- 2. Galaxy S6 Bildschirmabmessungen - android
- 3. modales Formular dynamisch füllen
- 4. Füllen Sie PDF-Formular programmgesteuert
- 5. Füllen Eingabedatei Formular mit JavaScript
- 6. Füllen Bootstrap-Formular aus Dropdown
- 7. füllen Formular nach Option wählen
- 8. Hardware Sizing
- 9. select2 Bootstrap Sizing Problem
- 10. Formular füllen und senden, ohne auf ein Ereignis zu warten?
- 11. Access Application, ausgeblendete Anwendung Fenster mit Formular Taskleiste Icon
- 12. Gibt es eine Möglichkeit, Eltern minus eine feste Zahl in Android RelativeLayout zu füllen?
- 13. Erhalten Sie die richtigen Bildschirmabmessungen in android
- 14. Iphone: Aktuelle Ansichtsabmessungen oder Bildschirmabmessungen erhalten
- 15. Meteor Reagieren füllen Formular mit vorhandenen Daten
- 16. Beim Start Taskleiste deckt Vollbild C# -Anwendung
- 17. Füllen Formular nach HTTP-Antwort in angular2
- 18. C# Beim Schließen der Taskleiste in die Taskleiste minimieren
- 19. Füllen Datum Feld im Frühjahr MVC Formular
- 20. VB.Net-Formular aus XML-Dokument füllen
- 21. Python HTML füllen und senden Formular
- 22. automatisch Sizing UIView nach Fenster
- 23. füllen PDF-Formular mit Unicode-Zeichen
- 24. PDF-Formular füllen mit PDFBox funktioniert nicht
- 25. Füllen Sie ein Formular beim Klicken aus?
- 26. UICollectionView Self-Sizing Benutzerdefinierte Zelle
- 27. Android Image Sizing
- 28. Screenshot des Formulars, dessen Abmessungen größer als die Bildschirmabmessungen sind
- 29. WPF Windows Sizing
- 30. Hardware Sizing - Thumb Rules
Verriegelt es richtig, wenn es maximiert ist? –
Ich weiß nicht, was Sie genau meinen? – kjack