Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

HOOK MENU 2003


Information sur la source

Catégorie :Control Classé sous : menu, apparence, office Niveau : Débutant Date de création : 28/02/2005 Date de mise à jour : 01/03/2005 13:42:34 Vu / téléchargé: 10 462 / 2 157

Note :
5 / 10 - par 2 personnes
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
Bonjour,

Certainement beaucoup d'entre vous connaisse le controle HookMenu qui permet d'obtenir facilement des menu au "look" Office XP. Je vous propose une petite évolution de code qui permet de l'avoir également au "look" Office 2003.

Il reste cependant à changer l'apparence entière de la barre de menu, si quelqu'un connait une solution, merci de la partager.
 

Conclusion

Je n'ai pas réellement compter mais 95% du code est de son auteur original Vlad Vissoultchev.

Je suis en train de mettre en propriété du controle la plupart des couleurs afin quelles soient plus facilement modifiables.

N'hésitez pas à laisser un commentaire

++
Moustachu
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

28 février 2005 17:53:14 :
Pb Zip
01 mars 2005 13:42:34 :
Correction "look"

Commentaires et avis

signaler à un administrateur
Commentaire de starfighter le 28/02/2005 17:14:56

Salut,
Pour le reste du menu essaye cela:
[code]
Private Sub SetMenuBackgroundColor(ByVal hMenu As Long)
Dim ret As Long                 'Variable to hold return values from GetMenuInfo and SetMenuInfo
Dim hBrush As Long              'Variable to hold the handle to the background brush we are going to create
Dim lbBrushInfo As LOGBRUSH     'Variable to hold the information to pass to the CreateBrushIndirect API
Dim miMenuInfo As tagMENUINFO   'Variable to hold the menu info
    
    lbBrushInfo.lbStyle = BS_SOLID  'Set our brush type to solid
    lbBrushInfo.lbColor = mBackgroundColor 'Couleur du Fond du reste du menu
    lbBrushInfo.lbHatch = 0         'This value is ignored I set it to 0 to make sure nothing weird will happen
    hBrush = CreateBrushIndirect(lbBrushInfo)   'We create our brush
    miMenuInfo.cbSize = Len(miMenuInfo)         'Set the MenuInfo structure size so that we don't get errors
    ret = GetMenuInfo(hMenu, miMenuInfo)        'Go and get the actual menu info should return non-zero if successful
    miMenuInfo.fMask = MIM_APPLYTOSUBMENUS Or MIM_BACKGROUND    'Set the mask for the changes (changing the background for menu and all sub-menus)
    miMenuInfo.hbrBack = hBrush                 'Assign our brush to the menu info
    ret = SetMenuInfo(hMenu, miMenuInfo)        'Write our info back to the menu and we're done. (should return non-zero if successful)
End Sub
[/code]

signaler à un administrateur
Commentaire de moustachu le 28/02/2005 17:18:49

Merci beaucoup,
Je regarde brièvement mais d'après les commentaires de ton code, cela va également modifier les sous-menu ce que je ne souhaite pas.

Je garde ça sous le coude.

++
Moustachu

signaler à un administrateur
Commentaire de bouv le 28/02/2005 17:37:41

Super sympa !!!

2 suggestions :
- Pourrai tu fournir le reste de la source originale (neccessaire) pour ceux qui ne l'ont pas
- Tu devrai peux etre renommer le nom de l'ocx (ex : HookMenu2003.ocx) pour ne pas ecraser l'originale ainsi que le titre de l'application dans les propriétés du projet pour éviter toute confusion.

Bonne prog
++

signaler à un administrateur
Commentaire de sadate le 16/09/2005 17:13:32

Les menus ne fonctionne pas sur NT4 pourquoi???

signaler à un administrateur
Commentaire de sadate le 16/09/2005 18:39:04

Je viens de trouver une version 1.5
je vais essayer ça.

http://pscode.com/vb/scripts/ShowCode.asp?txtCodeId=49985&lngWId=1

signaler à un administrateur
Commentaire de moustachu le 24/09/2005 18:02:35

C'est certains que je ne suis pas le seul à y avoir pensé. Sur NT4, ça doit fonctionner normalement.

A+

Moutachu

signaler à un administrateur
Commentaire de globule le 09/05/2006 12:17:07

Que se passe t'il si j'utilise se composant sur un poste en 95 ou sur un NT 4 qui n'à pas de SP6 ? Ca plante ou ca affiche les menus sans le look office ? Cette source me tente, mais je ne veux pas risquer de planter tous mes utilisateurs en NT ou 95 (et oui, il y en a encore beaucoup !)

signaler à un administrateur
Commentaire de moustachu le 10/05/2006 08:27:28

Bonjour Globule,

Sur NT4 ou 95, effectivement cela plantera pour le look 2003 mais pas le look office XP. Je viens de vérifier, l'auteur initial de la source utilise des API absentes de NT4 et W95 (dégradé). Je n'ai fait qu'utiliser les fonctions existantes. Je ne crois pas qu'avec la SP6 cela règle le problème

Pour ces OS, je pense qu'il faudrait remplacer l'appel de l'API FillGradient par une procédure perso de dégradé. Il y en a à la pelle sur le site.


95, je ne sais pas s'il reste grand monde. NT4, c'est clair, y'en a un paquet : je travaille dessus.

++
Moustachu

signaler à un administrateur
Commentaire de jbarras le 24/04/2007 10:41:42

Bonjour,

Ce contrôle est absolument génial.

Malheureusement si je l'exécute sur un serveur Windows Server 2003, il plante.

Quelqu'un a déjà eu ce problème ?

Merci !

signaler à un administrateur
Commentaire de eliache le 25/04/2007 17:01:42

il y a toujour un problème au niveau du menu afficher lors du click sur l'icône d'une feuille mdichild

signaler à un administrateur
Commentaire de eliache le 25/04/2007 17:08:18

si quelqu'un peut m'aider ?
est ce qu'on peut utiliser HookMenu sur un menu créer par code?

signaler à un administrateur
Commentaire de moustachu le 14/05/2007 12:21:29

Désolé pour la réponse tardive. Je n'avais pas vu passer vos messages.

jbarras>J'ai Server 2003, je ne peux pas te dire.
eliache>Pour le problème du menu provenant d'une icone (mdichild ou mdi) j'ai remarqué aussi, mais je ne sais pas encore le corriger. Pour HookMenu sur un menu créé par code, j'ai peur que ça ne marche pas

++
Moustachu

signaler à un administrateur
Commentaire de jbarras le 21/02/2008 14:43:11

Bonjour,

Sur certains serveurs Windows 2003, impossible de le faire fonctionner. Alors que sur d'autres cela fonctionne à merveille. Par contre, aucun soucis sous XP ;-)

Je pense que le problème rencontré sur ces serveurs, est qu'il me manque un/plusieurs fichiers nécessaires au bon fonctionnement de HookMenu.

Quels fichiers doivent être inclus dans le programme d'installation en plus de l'OCX de HookMenu pour qu'il puisse fonctionner ?

Merci !

signaler à un administrateur
Commentaire de moustachu le 22/02/2008 06:47:33

Bonjour,

Tu peux trouver une autre version ici :
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=49985&lngWId=1

Sur VBfrance, le code d'origine avait été posté ici :
http://www.vbfrance.com/codes/SOURCE-HOOKMENU-CONVERTIT-MENU-MENU-XP_5513.aspx

Je ne connaissais pas le code de PlanetCodeSource mais il semble être plus complet que le mien.

En espérant qe ça t'aidera.

++
Moustachu

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Un menu (fichier - edition...) a la office XP [ par Pekinio ] Sil Vous plait, j'aimerais vraiment que quelqu'un (blackwizz... au hazard :) me ponde un truc comme ca, ce s'rai Menu style office XP [ par krazitchek ] Bonjour, quelqu'un sait t'il ou trouver/comment faire en VB un menu du style Office XP ?... Merci. Menu Style Office XP !!! [ par ToasTy62 ] qqun saurait-il comment faire des menus du style de ceux de Office XP ???merci d'avance !!! ;o)++, ToasTy Base de donnée et menu déroulant [ par Sinople ] Est ce qu'il est possible d'afficher dans un menu déroulant une liste controlee par une base de donnée?Pour etre plus clair on change ce qui se trouve mise à jour de menu déroulant(combo box) [ par ypothier ] Est-ce que quelqu'un peut me dire comment mettre à jour les données se trouvant dans un menu déroulant (combo box) qui a un lien avec un autre menu dé VBA - Construction de menu sous winword en VBA [ par eric_aix13 ] Bonjour, Je suis a la recherche des commandes permettant de remplacer la barre de menu par defaut par menu barre personnalisée, tout cela par programm HELP : MENU CONTEXTUEL DANS UN TREEVIEW [ par thehitman ] Salut tt le monde j'suis en galère !!!!!je cherche le source de l'evenement click droit sur un treeviewplease help me ! je dois avoir fini mon taf ce Menu Prédéfinis [ par eric_aix13 ] HELP - AU SECOURSBonjourlorsque je construit une barre personnalisé, via le menu personnalié,Onglet barre outils- nouvelle barreonglet commande- je ch ajout d'option dans un menu [ par josiane ] j'ai un menu typeoption1 => option11 => option 111quand je crée dynamiquement option2 option22les lienentre les deux de se font pas (load MENU_ /!\!!!!!!!!!!Besoin du code pour afficher un menu contextuel en clickant sur un bouton!!!!!!!/!\ [ par ARTEMUZAG ] SVP!!jai besoin de savoir comment on fait pour que quand tapui sur un bouton avec le bouton gauche sa met un petit menu contextuel !merci de me repond


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version


HTC Magic

Entre 429€ et 429€


Photothèque Nouveau !



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
Temps d'éxécution de la page : 2,824 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.