Le Coin des AutoCADiens

Le site français des développeurs pour AutoCAD

Vous pourrez ici apprendre à programmer en Visual Basic pour AutoCAD.
VBA ExplorAcad - Partie 2 VBA


ExplorAcad Nota :
Par souci de simplification, les explications de ce programme ont été sectionnées en trois parties. Les sections correspondent aux différentes versions :
  1. La partie 1, le code de la version 1, explique
    • Comment choisir un fichier en VB.
    • Comment créer les aperçus.
    • Comment implémenter les protocoles pour Internet.
  2. Cette partie, le code de la version 2, explique comment mettre le programme en petite icône, et comment y attacher un menu.
    Le code ci-dessous est à rajouté au code de la version 1.
  3. La version 2.2 explique comment avoir des informations sur un fichier, etc ...

La version 2

Cette partie d'installer le programme "en tite icône" près de la pendule de Win 95. Un clic permet d'ouvrir le programme, ensuite un autre clic sur le nouveau bouton correspondant permet de le refermer à sa place.
En actionnant sur le bouton droit de la souris quand elle se trouve au-dessus de l'icône, vous aurez accès à un petit menu.
VB5 ou VB6 - Non testé en VB4.


A rajouter sur la feuille ExplorAcad
Le bouton de commande 'Réduire en Icône'

Propriété (Name) : cmdIcon


Le petit menu de l'icône

ExplorAcad Commencez par ouvrir le Créateur de menu (dans le menu déroulant outils).
Indiquez les valeurs de Name indiquées ci-dessous, sinon il faudra les changer dans le code également.

Ligne Menu
Propriété Caption : Menu
Propriété Name : Menu
Bouton Enabled coché
Les autres boutons non cochés

Ligne &Agrandir
Propriété Caption : &Agrandir
Propriété Name : Agrandir
Bouton Enabled coché
Bouton Visible coché
Les autres boutons non cochés

Ligne - (trace une ligne de séparation)
Propriété Caption : -
Propriété Name : xx (une valeur quelconque)
Bouton Enabled coché
Bouton Visible coché
Les autres boutons non cochés

Ligne &Désactiver
Propriété Caption : &Désactiver
Propriété Name : Quitter
Bouton Enabled coché
Bouton Visible coché
Les autres boutons non cochés

Le code du module ExplorAcad.bas

Déclarations dans le Module1 (ExplorAcad.bas)
Il nous faut une autre fonction API :
  • Pour pouvoir mettre une icône dans la barre de menu on utilisera la fonction API Shell_NotifyIcon.
    Pour que cette fonction API puisse être employée, il faut qu'elle soit déclarée comme Private dans la partie Général du module.
  • L'instruction Type permet de déclarer les variables publiques personnalisées utilisées par l'API Shell_NotifyIcon.



Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" _
		(ByVal dwMessage As Long, pnid As IconeTray) As Boolean

Public Type IconeTray
    cbSize As Long      'Taille de l'icône (en octets)
    hWnd As Long        'Handle de la fenêtre chargée de recevoir les messages envoyés lors
                        ' des évènements sur l'icône (clics, doubles-clics...)
    uID As Long         'Identificateur de l'icône
    uFlags As Long
    uCallbackMessage As Long    'Messages à renvoyer
    hIcon As Long               'Handle de l'icône
    szTip As String * 64        'Texte à mettre dans la bulle d'aide
End Type

Public IconeT As IconeTray

' Constantes pour IconeTray
Public Const AJOUT = &H0
Public Const MODIF = &H1
Public Const SUPPRIME = &H2
Public Const MOUSEMOVE = &H200
Public Const MESSAGE = &H1
Public Const Icone = &H2
Public Const TIP = &H4
Public Const DOUBLE_CLICK_GAUCHE = &H203
Public Const BOUTON_GAUCHE_POUSSE = &H201
Public Const BOUTON_GAUCHE_LEVE = &H202
Public Const DOUBLE_CLICK_DROIT = &H206
Public Const BOUTON_DROIT_POUSSE = &H204
Public Const BOUTON_DROIT_LEVE = &H205


Le code à modifier dans Form1

Procédure Sub DwgVignette1_Click()
  • Les deux premières lignes sont à rajouter :
    Quand on a cliqué sur la vignette du dessin pour l'ouvrir, la fenêtre d'ExplorAcad est fermée et l'icône est alors placée dans la barre de menus, avand de lancer AutoCAD.



Private Sub DwgVignette1_Click()
  Me.Hide					' << nouveau	
  Shell_NotifyIcon AJOUT, IconeT		' << nouveau
  R& = ShellExecute(Me.hWnd, vbNullString, Fichier, vbNullString, Chemin, 1)
  If R& = 31 Then
    MsgBox "Ni AutoCAD ni LT ne sont associés aux fichiers .dwg !", _
    vbInformation, "Absence d'association de fichier"
  End If
End Sub


Le code à rajouter dans Form1

Procédures nécessaires pour la gestion de l'icône
  • Les procédures sont annotées dans le source.



 Private Sub Form_Load()  
   ' Cette procédure s'exécute au chargement de la forme.

   'Préparation de la variable IconeT
   IconeT.cbSize = Len(IconeT) 	'Taille de l'icône en octet
   IconeT.hWnd = Me.hWnd       	'Handle d'ExplorAcad (pour qu'il reçoive les messages 
				'envoyés lors d'un clic, double-clic...
   IconeT.uID = 1&             	'Identificateur de l'icône
   IconeT.uFlags = Icone Or TIP Or MESSAGE
   IconeT.uCallbackMessage = MOUSEMOVE     'Renvoie messages concernant action souris
   IconeT.hIcon = Form1.Icon               'Met en icône l'image qui est dans "Form1"
   IconeT.szTip = "ExplorAcad" & Chr$(0)    'Texte de la bulle d'aide
   ' Les 2 lignes suivantes permettent de mettre ExplorAcad en icône au chargement.
   ' à supprimer si vous désirez que l'application reste ouverte au démarrage.
    Me.Hide
    Shell_NotifyIcon AJOUT, IconeT

End Sub
 
Private Sub RestaurIcone()
    ' Ouverture d'ExplorAcad quand on clique sur l'icône.
    Form1.Show
    IconeT.cbSize = Len(IconeT)
    IconeT.hWnd = Me.hWnd
    IconeT.uID = 1&
    Shell_NotifyIcon SUPPRIME, IconeT
End Sub

Private Sub Agrandir_Click()
    ' Procédure du menu Agrandir de l'Icône
    RestaurIcone
End Sub

Private Sub cmdIcon_Click()
    ' Procédure de la commande Réduire en Icône
    Me.Hide
    Shell_NotifyIcon AJOUT, IconeT
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    ' Procédure de gestion de la souris sur l'icône
    msg = X / Screen.TwipsPerPixelX
    If rec = False Then
        rec = True
        Select Case msg
            Case DOUBLE_CLICK_GAUCHE
                RestaurIcone
            Case BOUTON_DROIT_LEVE
                PopupMenu Menu, , , , Agrandir ' menu de form1 (avec sous-menu agrandir)
            End Select
        rec = False
    End If
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    ' Procédure quand on clique sur le bouton de fermeture de l'application
    IconeT.cbSize = Len(IconeT)
    IconeT.hWnd = Me.hWnd
    IconeT.uID = 1&
    Shell_NotifyIcon SUPPRIME, IconeT
End Sub

Private Sub Quitter_click()
  ' Procédure du menu Désactiver de l'Icône
  Unload Me
End Sub




Récapitulatif du code

La partie 1 - Comment choisir un fichier en VB, comment créer les aperçus, comment implémenter les protocoles pour Internet.

La partie 2 - Comment placer le programme en 'tite icône', comment attacher un menu à la 'tite icône'.

La partie 3 - Comment récupérer les informations sur un fichier, comment placer un fichier dans la corbeille.

La partie 4 - Comment afficher les clichés AutoCAD en VB, comment lire la liste des clichés d'une bibliothèque.


-----

Le code d'Exploracad - Partie 3

-----

© 1998 - 2009 FASOFT - Roger Rosec Tous droits réservés.
Google
 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------