[VBA] Cacher barre des tâches pour appli plein écran
Cette démo est surtout utile quand l'écran n'est pas de grande dimension, elle permet l'affichage de l'appli sur toute la surface de l'écran en « cachant » la barre des tâches.
Si votre application n'est utilisée que sur votre PC et que votre barre des tâches est paramétrée pour être « rétractible », cette démo ne vous est pas nécessaire.
Cette démo est agencée en « bascule » de telle façon qu'un seul bouton ou raccourci clavier est nécessaire pour fonctionner.
Dans un module général
'************************* '*** Lermite ****** '*** 06/03/2010 ****** '************************* Option Explicit Public Bascule As Boolean Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long Public Declare Function SHAppBarMessage Lib "shell32.dll" (ByVal dwMessage As Long, pData As AppBarData) As Long 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 Private Type POINTAPI X As Long Y As Long End Type Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Public Type AppBarData cbSize As Long hwnd As Long uCallbackMessage As Long uEdge As Long rc As RECT lParam As Long End Type Private Type WINDOWPLACEMENT Length As Long FLAGS As Long showCmd As Long ptMinPosition As POINTAPI ptMaxPosition As POINTAPI rcNormalPosition As RECT End Type Public WinPlacement As WINDOWPLACEMENT Public Const ABS_ALWAYSONTOP = &H2 Public Const ABS_AUTOHIDE = &H1 Public Const ABM_GETSTATE = &H4 Public Const ABM_SETSTATE = &HA ' Trouver le hwnd de la barre des tâches Private Function GetHwndBT() As Long GetHwndBT = FindWindow("shell_traywnd", "") End Function Private Function BarData() As Integer Dim BarDt As AppBarData BarData = SHAppBarMessage(ABM_GETSTATE, BarDt) End Function 'Retourne true si la barre des tâches est rétractible Public Function BarMode() As Boolean Dim ret As Integer ret = BarData() BarMode = (ret = ABS_AUTOHIDE + ABS_ALWAYSONTOP Or ret = ABS_AUTOHIDE) End Function 'Applique les propriétés à la barre des taches 'Mode = 0 : voir la barre des tâche 'Mode = 1 : cache la barre des tâches Public Sub ChangeTaskBar(Mode As Long) Dim BarDt As AppBarData Dim ret As Long 'Entrée des paramètres BarDt.cbSize = Len(BarDt) BarDt.hwnd = GetHwndBT BarDt.lParam = Mode 'Applique ret = SHAppBarMessage(ABM_SETSTATE, BarDt) If ret = 0 Then Call MsgBox("erreur lors de l'appel de SHAppBarMessage", vbCritical + vbOKOnly, "Erreur") End If End Sub Sub MaximizeAppli() Static a As Boolean Static Changer As Integer If Changer = 0 Then 'Voir si la barre des tâches est rétractible Changer = IIf(BarMode, 1, 2) End If a = Not a If Changer = 2 Then 'la barre des tâches n'est pas rétractible, ont la retracte / Ressort Call ChangeTaskBar(Abs(a)) End If 'L'appli sera toujours maximizée plein écran. Application.WindowState = IIf(a, xlMaximized, xlNormal) End Sub
Trois exemples pour employer la fonction.
1) Un raccourci clavier.
Dans le ruban, cliquez sur Macro, sélectionnez la macro MaximizeAppli
->> option et attribuez une lettre au raccourci.
2°) Un bouton formulaire sur un forme
Attribuez la fonction MaximizeAppli au bouton
3°) Avec un bouton sur un Userform
Attention, l'userForm doit être appeler avec Show 0
Dans le code du bouton de l'UserForm
Private Sub CommandButton1_Click() MaximizeAppli Dim T, L 'Exemple pour positionner le bouton aux environs des boutons système de l'appli. L = Application.Left + Application.Width - UFbouton.Width - 60 T = Application.Top + 2 Me.Move L, T, 40, 14 ' à adapter End Sub
Vous pouvez télécharger une classeur démo qui reprend les trois solutions d'appel.
Note : les fonctions OterCadreUF et transparence appliquées à L'UserFom ne sont là que pour la démo et ne sont pas indispensables.
A découvrir aussi
- VB.Net - TextBox, limiter saisie aux chiffres
- Créer un setup d'installation - Inno Setup Compiler
- Les variables en C++
Inscrivez-vous au blog
Soyez prévenu par email des prochaines mises à jour
Rejoignez les 2 autres membres