Rubrik: Fenster & Forms | 15.06.03 |
Form soll den ganzen Bildschirm ausfüllen VB-Version: VB5, VB6 | ||
Views: 9.726 |
Wie erreiche ich, dass meine Form beim Start des Programms den ganzenBildschirm ausfüllt? Spontan fällt da wohl jedem dieses hier ein:
Private Sub Form_Load() Me.WindowState = vbMaximized End Sub
Soweit - so gut. ABER: ist damit wirklich der ganze Bildschirm ausgefüllt? Nein - eben nicht. Die Taskleiste ist immer noch da. Die muss noch weg. Mit einbisschen Windows API geht auch das:
Option Explicit ' zuerst die benötigte API ... Private Declare Function SetWindowPos Lib "user32" ( _ ByVal hWnd As Long, _ ByVal hWndInsertAfter As Long, _ ByVal x As Long, _ ByVal y As Long, _ ByVal cx As Long, _ ByVal cy As Long, _ ByVal wFlags As Long) As Long ' ... nun die Konstanten Private Const HWND_TOPMOST = -1 Private Const HWND_NOTOPMOST = -2 Private Const SWP_NOMOVE = &H2 Private Const SWP_NOSIZE = &H1 ' Fenster in den Vordergrund setzen Public Sub FormOnTop(ByVal hWnd As Long, _ ByVal OnTop As Boolean) If OnTop Then ' immer im Vordergrund SetWindowPos hWnd, HWND_TOPMOST, 0, 0, 0, 0, _ SWP_NOMOVE Or SWP_NOSIZE Else ' normal SetWindowPos hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, _ SWP_NOMOVE Or SWP_NOSIZE End If End Sub ' der Aufruf erfolgt dann so: Private Sub Form_Load() Me.Move 0, 0, Screen.Width, Screen.Height FormOnTop Me.hWnd, True End Sub
Wen jetzt noch die Titelleiste stört, setzt einfach in den Eigenschaften derForm Borderstyle = 0. Um das allerdings auszuprobieren, empfiehlt es sich, einenCommandButton auf die Form zu setzen mit folgendem Code:
Private Sub Command1_Click() Unload Me End Sub