Change the ShowInTaskbar property at runtime

The ShowInTaskbar property lets you decide whether a form is visible in Windows taskbar or not. However, this property is read-only at runtime, so it seems that you can’t change this setting while the program is running. Luckly, you just need to change the window’s style, using a pair of API functions, and you can stuff all the code in just one line:

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _    (ByVal hWnd As Long, ByVal nIndex As Long) As LongPrivate Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _    (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Const GWL_EXSTYLE = (-20)Private Const WS_EX_APPWINDOW = &H40000Private Sub Form_Load()    ' hide this form from the taskbar    SetWindowLong Me.hWnd, GWL_EXSTYLE, (GetWindowLong(hWnd, _        GWL_EXSTYLE) And Not WS_EX_APPWINDOW) End Sub

The next example demonstate that you can use the same approach to force a form to display itself in the taskbar:

Private Sub Form_Load()    ' show this form on the taskbar    SetWindowLong Me.hWnd, GWL_EXSTYLE, (GetWindowLong(hWnd, _        GWL_EXSTYLE)  Or WS_EX_APPWINDOW) End Sub

Notice that changing the form’s style in this way works only when the form hasn’t become visible yet, so you should put this code in the Form_Load event procedure.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: