Recently I had to write a Windows application that required the main form to run in full-screen mode. This means no title bar and with the window appearance above everything else, i.e. Start Button, taskbar, system tray and all other apps.

This requires an API call to the SetWindowPos function which you need to create an alias to before you can call it. The first part of the code, which should be placed in the declarations part of the form, looks like this :

SetWindowsPos alias:
[code lang=”vb”]
Private Declare Function SetWindowPos Lib "user32.dll" Alias "SetWindowPos" (ByVal hWnd As IntPtr, ByVal hWndIntertAfter As IntPtr, ByVal X As Integer, ByVal Y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal uFlags As Integer) As Boolean
[/code]

You also need an alias to the API function called GetSystemMetrics, like this :

VB.NET – GetSystemMetrics alias:
[code lang=”vb”]
Private Declare Function GetSystemMetrics Lib "user32.dll" Alias "GetSystemMetrics" (ByVal Which As Integer) As Integer
[/pre]

<p>
Following this you need to declare 4 constants :
</p>

Required constants:
[code lang="vb"]
Private Const SM_CXSCREEN As Integer = 0
Private Const SM_CYSCREEN As Integer = 1
Private Shared HWND_TOP As IntPtr = IntPtr.Zero
Private Const SWP_SHOWWINDOW As Integer = 64
[/code]

Then 2 public properties :

Required property #1:
[code lang=”vb”]
Public ReadOnly Property ScreenX() As Integer
Get
Return GetSystemMetrics(SM_CXSCREEN)
End Get
End Property
[/code]

— and —

Required property #2:
[code lang=”vb”]
Public ReadOnly Property ScreenY() As Integer
Get
Return GetSystemMetrics(SM_CYSCREEN)
End Get
End Property
[/code]

After this you need to write a simple sub routine to use the constants you declared above and that calls the SetWindowPos API function. The function’s code looks like this :

The FullScreen() method:
[code lang=”vb”]
Private Sub FullScreen()
Me.WindowState = FormWindowState.Maximized
Me.FormBorderStyle = FormBorderStyle.None
Me.TopMost = True
SetWindowPos(Me.Handle, HWND_TOP, 0, 0, ScreenX, ScreenY, SWP_SHOWWINDOW)
End Sub
[/code]

Beyond that it’s just a case of calling the FullScreen sub routine whenever you want the application to show in full-screen mode. Easy huh? 🙂