begin process at 2012 02 16 20:10:04
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > AJOUT DE SOUS MENU DYNAMIQUEMENT

AJOUT DE SOUS MENU DYNAMIQUEMENT


 Information sur la source

Note :
8 / 10 - par 7 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Classé sous :ajout, menu, sousmenu, api, dynamiquement Niveau :Initié Date de création :21/09/2001 Vu / téléchargé :6 189 / 880

Auteur : cerdoc

Ecrire un message privé
Site perso
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Permet d'ajouter a un sous menu dynamiquement a un menu deja existant (utilisation d'API Windows)

Tout est dans le zip


 Conclusion

Si quelqu'un sait faire la même chose sans API je prend !

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) .NET DEPENDENCY VIEWER : ARBRE DES DÉPENDANCES D'UN ASSEMBLY... par ShareVB
Source avec Zip Source .NET (Dotnet) UTILITAIRE SKYDRIVE par MasterShadows
Source avec Zip ROTATION RAPIDE D'IMAGE par trex70
Source avec Zip Source avec une capture ENUMERATION DES PORTS TCP ET IDENTIFCATION DU PROCESS (PID) ... par Renfield
Source avec Zip Source avec une capture MOUSE SPEED AND WEIGHT : RETOUR DE FORCE VIRTUEL ! par ScSami

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture COLLECTION ID par Le Pivert
Source avec Zip COMMUNICATION MODBUS MASTER par sergelapointe
Source avec Zip USERFORM PLEIN ÉCRAN SOUS EXCEL VBA par mimiZanzan
Source avec Zip PROGRAMME SIMPLE POUR CRÉER UN POPUP MENU AVEC DES SOUS-MENU... par besqueut
AJOUT DYNAMIQUE DE CONTROLES...SIMPLEMENT... par birdie

Commentaires et avis

Commentaire de Lolux le 24/01/2002 11:03:38

Bien cool ces petits codes sources courts mais efficaces !

Félicitazionne !

Ca progresse , ca progresse !!! Merci

Commentaire de abelabbas le 05/04/2002 23:01:26

interessant
mais demande un peu de travil pour le rendre efficace a 100%
mais l'idée est bonne
bonne continuation

Commentaire de AngeliusMefyrx le 16/03/2007 17:45:07

*********************Ce que ça fait*******************
Base de données Access
Lorsqu'on charge le programme, ça accès une base de données Access
Ca créer alors un menu dynamique et attribue une commande afilié à celle ci

J'ai mis pas mal toute le code que je croyais utile
Inutilie de dire qu'il faut appeller la function dans le Form Load
De plus, cela attribue un menu au 6e menu de la fenetre aupréalablement créer avec rien dedans
Pour le premier, juste remplacer le 6 par 0 aux 2 endroits approprié
chemin = Le chemin de la BD access
DBPassword = Mettre ce que vous voulez si ya un mot de passe, sinon enlever la derniere option qui load la BD
Désoler mais, ça fait partis d'un programme que je fais, donc j'ai simplement copier le code lier à cette partie...j,espère rien avoir oublier

*************************BD ACCESS***********************
Table:
DBA_Raccourci

Champs:
Application Exemple: Boite de partage
Liens       Exemple: iexplore "http://support.lexmark.com/cgi-perl/knowledgebase.cgi?ccs=37:3:0:101:0:0&docid=ENUS8664"
Categorie   Exemple: Liens Internet

*************************MODULE***********************

Public pOldProc As Long
Public pOldProc2 As Long

Public Declare Function CreatePopupMenu Lib "user32" () As Long
Public Declare Function InsertMenuItem Lib "user32" Alias "InsertMenuItemA" (ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, ByRef lpcMenuItemInfo As MENUITEMINFO) As Long
Public Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal b As Long, lpMenuItemInfo As MENUITEMINFO) As Long
Public Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, lpcMenuItemInfo As MENUITEMINFO) As Long
Public Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Public Type MENUITEMINFO
    cbSize As Long
    fMask As Long
    fType As Long
    fState As Long
    wID As Long
    hSubMenu As Long
    hbmpChecked As Long
    hbmpUnchecked As Long
    dwItemData As Long
    dwTypeData As String
    cch As Long
End Type

Public retval As Long
Public chemin As String

Public mii1 As MENUITEMINFO 'strucutre d'info d'un menu


Public Const MIIM_STATE = &H1
Public Const MIIM_ID = &H2
Public Const MIIM_SUBMENU = &H4
Public Const MIIM_CHECKMARKS = &H8
Public Const MIIM_DATA = &H20
Public Const MIIM_TYPE = &H10
Public Const MFT_BITMAP = &H4
Public Const MFT_MENUBARBREAK = &H20
Public Const MFT_MENUBREAK = &H40
Public Const MFT_OWNERDRAW = &H100
Public Const MFT_RADIOCHECK = &H200
Public Const MFT_RIGHTJUSTIFY = &H4000
Public Const MFT_RIGHTORDER = &H2000
Public Const MFT_SEPARATOR = &H800
Public Const MFT_STRING = &H0
Public Const MFS_CHECKED = &H8
Public Const MFS_DEFAULT = &H1000
Public Const MFS_DISABLED = &H2
Public Const MFS_ENABLED = &H0
Public Const MFS_GRAYED = &H1
Public Const MFS_HILITE = &H80
Public Const MFS_UNCHECKED = &H0
Public Const MFS_UNHILITE = &H0

Public Const WM_COMMAND = &H111

Public Const GWL_WNDPROC = -4
Public Const DBPassword = ""


Public hPopupMenu1 As Long 'handle du menu déroulant
Public hPopupSMenu1 As Long
Public hPopupSMenu2 As Long

Public hMenu As Long 'handle pour manipuler le menu "FICHIER" temporairement

Public Const GHND = &H42
Public Const CF_TEXT = 1
Public Const MAXSIZE = 4096


Public conDatabase As Database
Public Table_Menu_App() As String
Public Table_Menu_App_H As Integer


Public Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim i As Integer
If uMsg = WM_COMMAND Then
    For i = 0 To Table_Menu_App_H
        If Table_Menu_App(2, i) <> "" And Table_Menu_App(0, i) = wParam Then
            Set go = CreateObject("WScript.Shell")
            go.run Table_Menu_App(2, i)
        End If
    Next i
End If
WindowProc = CallWindowProc(pOldProc, hwnd, uMsg, wParam, lParam)
End Function



Rem ***************************************** Frm_Main *******************************************

Private Sub Load_Menu_Favoris()
Dim StrSQL As String
Dim Rs As Recordset
hPopupMenu1 = CreatePopupMenu()
Dim CategorieTmp As String
Dim Incrementeur As Integer
Incrementeur = 100
Table_Menu_App_H = -1

Set conDatabase = OpenDatabase(chemin, Options, ReadOnly, "MS Access;pwd=" & DBPassword)
StrSQL = "SELECT * FROM DBA_Raccourci ORDER BY Categorie DESC, Application DESC"
Set Rs = conDatabase.OpenRecordset(StrSQL)

If Rs.RecordCount > 0 Then
    Rs.MoveFirst
    Do Until Rs.EOF
        If Rs.Fields("Categorie") <> CategorieTmp Then
            Incrementeur = Incrementeur + 1
            hPopupSMenu1 = CreatePopupMenu()
            CategorieTmp = Rs.Fields("Categorie")
            With mii1
                .cbSize = Len(mii1)
                .fMask = MIIM_STATE Or MIIM_ID Or MIIM_TYPE
                .fState = MFS_ENABLED
                .wID = Incrementeur
                .fType = MFT_STRING
                .dwTypeData = Rs.Fields("Categorie")
                .cch = Len(.dwTypeData)
            End With
            retval = InsertMenuItem(hPopupMenu1, 0, 1, mii1)
            hMenu = GetMenu(Frm_Main.hwnd)
            retval = GetMenuItemInfo(hMenu, 6, 1, mii1)  'Le 7e menu dans la liste
            With mii1
                .cbSize = Len(mii1)
                .fMask = MIIM_SUBMENU
                .hSubMenu = hPopupMenu1
            End With
            retval = SetMenuItemInfo(hMenu, 6, 1, mii1)  'Le 7e menu dans la liste
        End If
        
        Incrementeur = Incrementeur + 1
        Table_Menu_App_H = Table_Menu_App_H + 1
        ReDim Preserve Table_Menu_App(0 To 2, 0 To Table_Menu_App_H)
        Table_Menu_App(0, Table_Menu_App_H) = Incrementeur
        Table_Menu_App(1, Table_Menu_App_H) = Rs.Fields("Application")
        Table_Menu_App(2, Table_Menu_App_H) = Rs.Fields("Liens")
        
        With mii1
            .cbSize = Len(mii1)
            .fMask = MIIM_STATE Or MIIM_ID Or MIIM_TYPE
            .fState = MFS_ENABLED
            .wID = Incrementeur
            .fType = MFT_STRING
            .dwTypeData = Rs.Fields("Application")
            .cch = Len(.dwTypeData)
        End With
        retval = InsertMenuItem(hPopupSMenu1, 0, 1, mii1)
        retval = GetMenuItemInfo(hPopupMenu1, 0, 1, mii1)
        With mii1
            .cbSize = Len(mii1)
            .fMask = MIIM_SUBMENU
            .hSubMenu = hPopupSMenu1
        End With
        retval = SetMenuItemInfo(hPopupMenu1, 0, 1, mii1)
        Rs.MoveNext
    Loop
End If
pOldProc = SetWindowLong(Frm_Main.hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

ajout dans un menu dynamiquement.... [ par wico2002 ] J'ai un menu qui est fait avec l'&#233;diteur de menu de vb mais j'aimerais savoir comment ajout des sous-menu(item) dynamiquement pendant l'ex&#233;c VBA ajout d'un menu dans outils/protection? [ par XGuarden ] Je cherche simplement &#224; ajouter quelque chose dans le menu outils/protectionMerci d'avance.(en vba) [VB6] Sous menu d'un sous menu :p [ par malhivertman1 ] Voila, je vous explique mon probleme :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Je cr&#233;er des sous menus dynamiquement en fonct Ajout menu [ par agparchitecture ] Bonjour à tous, Je me posais une question sur le control menu.Quand je veux inserer un nouvel élément au menu je fais un code de cette façon:        D Ajout de références dynamiquement [ par mighnion ] Bonjour,Mon problème est le suivant. Je cherche à importer dans une form MDI un  programme : la calculatrice windows (par exemple) sans l'avoir import Qules problèmes pour l'utilisation de certaines API's sous VBA [ par inforom ] Bonjour à tous....J'ai déja posté quelques messages retraçant mes difficultés concernanbt l'utilisation des API's dan sVBA (EXCEL).Mon pb de départ: f Construire la réplique MenuStrip d'un menu récupéré avec l'API GetMenu() [ par Gammacronosios ] Bonjour amis programmeur.Je suis loin d'être débutant en programmation vb.net, mais je dois dire que là, j'ai comme un problème...Voila, je souhaitera Ajout bouton non-contextuel dans "Worksheet menu bar" [ par Cyt7500 ] Bonjour, Je vous écris parce que ca fait un moment (plusieurs jours ...[^^sad2]) que je cherche la solution mon probleme de menu contextuel. C'est Ajout Image dynamiquement [ par Guillamue06 ] Bonjour, j'essai de rajouter une image dynamiquement : [code=vb] Dim raquette As PictureBox raquette = New PictureBox raquette


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales