IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Forcer l'affichage de la barre des taches windows après docmd.Maximize [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre habitué Avatar de lakhdar16
    Homme Profil pro
    West POS Senior Representative
    Inscrit en
    Avril 2011
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Algérie

    Informations professionnelles :
    Activité : West POS Senior Representative
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2011
    Messages : 170
    Points : 127
    Points
    127
    Par défaut Forcer l'affichage de la barre des taches windows après docmd.Maximize
    Bonjour,

    je reviens encore vers vous mes amis en espérant trouver des réponses à mes questions et apprendre plus d'astuces en VBA pour enrichir mes faibles connaissances en programmation

    alors voila, j'ai un formulaire d'accueil qui s'ouvre en plein écran avec l'aide de la commande
    Mais en exécutant cette commande la barre des taches Windows se met en arrière plan ce qui rend le déplacement entre les fenêtres Windows un peu ennuyant (Ctrl+TAB).


    sachant que j'ai essayé les deux méthodes mentionnées ci-dessous:
    http://www.developpez.net/forums/d11...-barre-taches/

    et

    http://www.developpez.net/forums/d10...aches-windows/

    les deux solutions donnent le même résultat

    le résultat souhaité c'est:
    - afficher le formulaire en plein écran tout en gardant la barre des taches Windows visible.

    est il possible de forcer l'affichage de la barre des taches dans ce cas?
    merci pour votre aide d'avance.

    salutations.

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Je ne trouve pas normal que d'ouvrir un formulaire (fenêtre indépendante je suppose) masque la barre des tâches.
    On dirait que certaines propriétés de la barre des tâches ont été changées.

    Voici un bout de code à tester, pour forcer la barre des tâches à rester au premier plan, et à désactiver le masquage automatique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    ' ---------------------------------------------------------
    ' Section Déclarations
    '                                  (Général) (Déclarations)
    ' ---------------------------------------------------------
    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 Const ABM_GETSTATE As Long = 4
    Private Const ABM_SETSTATE As Long = 10
     
    Private Const ABS_AUTOHIDE As Long = 1         ' Conserver la barre des tâches au dessus des autres fenêtres
    Private Const ABS_ALWAYSONTOP As Long = 2      ' Masquer automatiquement la barre des tâches
     
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
            ByVal sClass As String, sWindowName As Any) As Long
     
    Private Declare Function SHAppBarMessage Lib "Shell32" ( _
            ByVal dwMessage As Long, ByRef pBarData As APPBARDATA) As Long
    ' ---------------------------------------------------------
    ' Fin Section Déclarations
    ' ---------------------------------------------------------
     
    Sub TaskBarAlwaysOnTop()
    Dim TaskBarData As APPBARDATA
    Dim hWnd As Long
     
    ' Initialise membre cbSize
    TaskBarData.cbSize = Len(TaskBarData)
    ' Retrouve le handler de fenêtre de la barre de tâches
    hWnd = FindWindow("Shell_TrayWnd", ByVal 0&)
    If hWnd <> 0 Then
       ' Copie le handler de fenêtre dans la structure APPBARDATA
       TaskBarData.hWnd = hWnd
       ' Définit le nouveau placement souhaité dans la structure APPBARDATA
       TaskBarData.lParam = ABS_ALWAYSONTOP
       ' Change le placement de la barre des tâches
       SHAppBarMessage ABM_SETSTATE, TaskBarData
    Else
       MsgBox "La fenêtre de la barre des tâche n'a pas été trouvée", , "Fonction FindWindow()"
    End If
     
    End Sub
    A+

  3. #3
    Membre habitué Avatar de lakhdar16
    Homme Profil pro
    West POS Senior Representative
    Inscrit en
    Avril 2011
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Algérie

    Informations professionnelles :
    Activité : West POS Senior Representative
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2011
    Messages : 170
    Points : 127
    Points
    127
    Par défaut
    Bonjour,

    merci LedZeppII pour ta réponse si riche en informations, j'ai testé le code que vous avez posté mais ça donne la même chose, j'ai juste oublié de mentionner que la propriété style de bordure du formulaire est "Aucune" en attachement un aperçu du formulaire.

    merci.

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,
    Citation Envoyé par lakhdar16 Voir le message
    ...j'ai juste oublié de mentionner que la propriété style de bordure du formulaire est "Aucune" ...
    Effectivement le problème semble venir de là.
    Je ne savais pas qu'en maximisant un formulaire sans bordure on recouvrait la barre des tâches.

    A la place de DoCmd.Maximize essaie la sub AgrandirAuMaximum du code ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    ' ---------------------------------------------------------
    ' Section Déclarations
    '                                  (Général) (Déclarations)
    ' ---------------------------------------------------------
    Private Type RECT
        left As Long
        top As Long
        right As Long
        bottom As Long
    End Type
     
    ' Device context
    Private Declare Function GetDC Lib "user32.dll" ( _
            ByVal hWnd As Long) As Long
    '
    Private Declare Function ReleaseDC Lib "user32.dll" ( _
            ByVal hWnd As Long, ByVal hDc As Long) As Integer
     
    Private Const LOGPIXELSX As Long = 88 ' pixels dans 1 inch
    Private Const LOGPIXELSY As Long = 90 ' pixels dans 1 inch
     
    Private Declare Function GetDeviceCaps Lib "Gdi32.dll" ( _
            ByVal hDc As Long, ByVal nIndex As Integer) As Integer
     
    ' Informations système
    Private Const SPI_GETWORKAREA As Long = 48
    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" ( _
            ByVal uiAction As Long, ByVal uiParam As Long, _
            pvParam As Any, ByVal fWinIni As Long) As Long
    ' ---------------------------------------------------------
    ' Fin Section Déclarations
    ' ---------------------------------------------------------
     
    Sub AgrandirAuMaximum()
    Dim rectWkArea As RECT, lgRetVal As Long
    Dim hDc As Long
    Dim TwipPerPixH As Single, TwipPerPixV As Single
    Dim lgWidthTwip As Long, lgHeightTwip As Long
     
    ' Taille de l'écran en pixel moins la barre des tâches
    lgRetVal = SystemParametersInfo(SPI_GETWORKAREA, 0, rectWkArea, 0)
    If lgRetVal <> 0 Then
       hDc = GetDC(0)
       ' twip/inch divisé par pixel par inch -> twip/pixel
       TwipPerPixH = 1440 / GetDeviceCaps(hDc, LOGPIXELSX)
       TwipPerPixV = 1440 / GetDeviceCaps(hDc, LOGPIXELSY)
       ReleaseDC 0, hDc
       ' Taille (largeur/hauteur) max en twips
       lgWidthTwip = rectWkArea.right * TwipPerPixH
       lgHeightTwip = rectWkArea.bottom * TwipPerPixV
    End If
    DoCmd.MoveSize 0, 0, lgWidthTwip, lgHeightTwip
     
    End Sub
    A+

  5. #5
    Membre habitué Avatar de lakhdar16
    Homme Profil pro
    West POS Senior Representative
    Inscrit en
    Avril 2011
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Algérie

    Informations professionnelles :
    Activité : West POS Senior Representative
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2011
    Messages : 170
    Points : 127
    Points
    127
    Par défaut
    Bonjour LedZeppII

    je tiens à te remercier infiniment pour ton aide et pour ton intervention si précieuse, ça marche nickel ton code alors au lieu de maximiser le formulaire on le agrandis au maximum suivant la taille de l'écran.

    encore merci. Résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment empècher l'affichage de la barre des taches
    Par yannjoe dans le forum VB 6 et antérieur
    Réponses: 21
    Dernier message: 08/08/2007, 14h17
  2. [vba] Affichage dans la barre des taches
    Par ancel17 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 18/06/2007, 14h32
  3. empecher affichage du programme dans la barre des tache windows
    Par Jérémy Lefevre dans le forum wxWidgets
    Réponses: 3
    Dernier message: 31/01/2007, 16h46
  4. [VB.NET] Masquer la barre des taches Windows
    Par seemax dans le forum Windows Forms
    Réponses: 3
    Dernier message: 23/04/2004, 14h57
  5. cacher la barre des taches window
    Par Flash2004 dans le forum MFC
    Réponses: 9
    Dernier message: 19/04/2004, 10h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo