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

IHM Discussion :

menu contextuel dans treeview


Sujet :

IHM

  1. #1
    Membre actif
    Avatar de GAGNON
    Inscrit en
    Septembre 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 201
    Points : 201
    Points
    201
    Par défaut menu contextuel dans treeview
    Salut à tous

    Afin de permettre à l'utilisateur d'ajouter, de supprimer ou d'ouvrir un formulaire basé sur un noeud, j'aimerai pouvoir faire afficher sur un clic droit pointant sur le noeud sélectionné, ces 3 possibilités.

    ça fait 2 jours que je tourne en rond sans succès...

    est-ce tout simplement possible ?

    (Access 2000)

    merci
    La pensée n'est qu'un éclair au milieu de la nuit. Mais c'est cet éclair qui est tout.
    Henri Poincaré

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Oui c'est possible mais cela va demander une gestion dynamique peut être en t'inspirant de ceci :

    http://access.developpez.com/sources...ContextMenuAPI

  3. #3
    Membre actif
    Avatar de GAGNON
    Inscrit en
    Septembre 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 201
    Points : 201
    Points
    201
    Par défaut
    Merci pour le lien,

    j'ai recopié ce code et implémenté dans un formulaire de test pour essayer de comprendre un peu ...

    Je dois dire que je suis un peu largué et que vais souffrir pour l'adapter à mon treview ...

    un peu d'aide serai le bienvenu
    La pensée n'est qu'un éclair au milieu de la nuit. Mais c'est cet éclair qui est tout.
    Henri Poincaré

  4. #4
    Membre actif
    Avatar de GAGNON
    Inscrit en
    Septembre 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 201
    Points : 201
    Points
    201
    Par défaut
    en fait, je ne comprends pas (entre autre)l'utilisation des constantes:
    • Const MF_CHECKED = &H8&
      Const MF_APPEND = &H100&
      Const TPM_LEFTALIGN = &H0&
      Const MF_DISABLED = &H2&
      Const MF_GRAYED = &H1&
      Const MF_SEPARATOR = &H800&
      Const MF_STRING = &H0&
      Const TPM_RETURNCMD = &H100&
      Const TPM_RIGHTBUTTON = &H2&


    notament dans la définition des variables:
    • TypeMenu1 = MF_GRAYED Or MF_DISABLED
      TypeMenu2 = MF_GRAYED Or MF_DISABLED
      TypeMenu4 = MF_GRAYED Or MF_DISABLED
    La pensée n'est qu'un éclair au milieu de la nuit. Mais c'est cet éclair qui est tout.
    Henri Poincaré

  5. #5
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Const MF_CHECKED = &H8&

    Définit un menu coché


    Const TPM_LEFTALIGN = &H0&

    Alignement à gauche

    Const MF_DISABLED = &H2&

    Menu désactivé

    Const MF_GRAYED = &H1&

    Menu grisé (compélment à disabled)

    Const MF_SEPARATOR = &H800&

    Définit un séparateur (une ligne)

    Const MF_STRING = &H0&

    Définit un menu avec du texte

    Les autres constantes ne doivent pas être utiles ici.


    Donc dans le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    TypeMenu1 = MF_GRAYED Or MF_DISABLED 
    TypeMenu2 = MF_GRAYED Or MF_DISABLED 
    TypeMenu4 = MF_GRAYED Or MF_DISABLED
    On définit 3 types de menu qui seront désactivé et grisé. Tout simplement

    Par la suite il suffit de changer la valeur de TypeMenu pour que le menu change d'apparence

  6. #6
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    C'est finalement pas bien compliquer.

    Mon TreeView s'appelle Treeview0.

    Je crée un menu Visualiser/Supprimer

    Dont voici le code :

    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
    Private Sub TreeView0_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Long, ByVal y As Long)
    'Traite le cas d'un clic droit
    If Button = 2 Then
        'Declaration
        Dim Pt As POINTAPI
        Dim result As Long
        Dim hMenu As Long
        Dim Titre As String
        Titre = "Selection : " & TreeView0.SelectedItem.Text
        hMenu = CreatePopupMenu()
        AppendMenu hMenu, MF_STRING, 0, Titre
        AppendMenu hMenu, MF_SEPARATOR, 1000, ""
        AppendMenu hMenu, MF_STRING, 1, "Visualiser"
        AppendMenu hMenu, MF_STRING, 2, "Supprimer "
        'Récupere l'emplacement de la souris
        GetCursorPos Pt
        'Affiche le menu à l'emplacement de la souris
        'Et récupere la valeur de l'item cliqué
        result = TrackPopupMenuEx(hMenu, _
        TPM_LEFTALIGN Or TPM_RETURNCMD _
        Or TPM_RIGHTBUTTON, Pt.x, Pt.y, Me.HWnd, ByVal 0&)
        'Supprime le menu
        DestroyMenu hMenu
        'Traite le resultat
        Select Case result
            Case 1
            'ici le code pour ouvrir le formulaire pour visuliser un enregsistrement
            Case 2
            'Supprime l'élément
            TreeView0.Nodes.Remove (TreeView0.SelectedItem.Key)
        End Select
    End If
    End Sub
    A toi de coder la visualisation

  7. #7
    Membre actif
    Avatar de GAGNON
    Inscrit en
    Septembre 2003
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 201
    Points : 201
    Points
    201
    Par défaut

    Merci beaucoup ça marche impécable, j'ai toujours du mal à comprendre certaines subtilités, mais ça viendra

    je tag ce post, mais j'en ouvre un autre sur le remplissage du treeview

    à+
    La pensée n'est qu'un éclair au milieu de la nuit. Mais c'est cet éclair qui est tout.
    Henri Poincaré

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

Discussions similaires

  1. [AC-2007] Menu contextuel dans un treeview
    Par vandrie dans le forum IHM
    Réponses: 3
    Dernier message: 08/01/2014, 14h28
  2. [C#.NET2.0] Menu contextuel dans une cellule d'un datagridview
    Par TheParadoX dans le forum Windows Forms
    Réponses: 16
    Dernier message: 28/08/2006, 10h08
  3. Menu contextuel dans un treeview
    Par Racob dans le forum IHM
    Réponses: 2
    Dernier message: 07/06/2006, 22h26
  4. Supprimer la barre de menu contextuel dans un état
    Par soso78 dans le forum Access
    Réponses: 2
    Dernier message: 07/10/2005, 00h05
  5. Créer un menu contextuel dans une zone de liste
    Par 973thom dans le forum Access
    Réponses: 10
    Dernier message: 13/09/2005, 23h59

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