AJOUTER DES ICONES DANS LES MENUS + COMMENT SUBCLASSER LES MENUS D'UNE FORM (OU

MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 - 22 févr. 2007 à 00:32
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 - 12 mai 2007 à 16:56
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41579-ajouter-des-icones-dans-les-menus-comment-subclasser-les-menus-d-une-form-ou-mdiform

violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
12 mai 2007 à 16:56
Salut, oui c'est sans doutes le cas (notemment ton thème de XP).

Sur certaines autres configs, les couleurs sont bonnes mais les icones sont coupées -___-

Faut que je planche sur ces bug...
@+
vicosta Messages postés 178 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 30 novembre 2011
12 mai 2007 à 16:50
très bon code mais... bizarre: sous xp je n'arrive pas en avoir une interface comme celle de la capture postée, les icônes des menus sont fades. Peut être que ce problème est du à ma config xp
Profil bloqué
24 févr. 2007 à 09:55
Salut Violent_Ken
J'ai déjà vu un aperçu de l'éditeur héxa et on attend sa finalisation avec impatience peut-on dire !
Très beau boulot : tu fais partie des grands de VBfrance
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 févr. 2007 à 13:04
si on ajoute des raccourcis (&) dans le caption des menus, ceux-ci sont affichés dans la barre d'etat.

plutot que de renvoyer le Caption du menu dans l'event, il vaudrait mieux renvoyer son "chemin". Ex:
Fichier\Nouveau\Fichier Bitmap

ca permettrait a l'utilisateur de tes classes de pouvoir traiter derrière l'info comme il le souhaites : Afficher un texte explicatif, par exemple, plutot que de dupliquer le texte du menu. En effet, RIEN ne m'empeche d'avoir trois sous menu avec le même Caption, imagine :

&Effacer
...Les ressources selectionnées
...Le projet
&Archiver
...Les ressources selectionnées
...Le projet

il sera plus adapté de placer comme texte d'aide,
"Permet d'effacer les ressources sélectionnées" plutot que de reprendre uniquement l'intitulé du menu...


pour l'interface, files moi ton adressse mail par MP, je t'envoies un exemple
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
22 févr. 2007 à 11:48
"Rien à voir avec ta source mais VB6 sous Vista ça commence à faire bizarre :P" ==> lol oui ;) Mais bon, y tourne encore bien ^^


Renfield : pour toutes les suggestions, je prend note et je mettrais à jour, mais j'avoue que

"clsFrmSubClassEvent pourrait être remplacé par une Interface, qui ne contiendrais que :
Public Sub OnMenuOver(ByRef strCaption As String)
ainsi tu ferais en haut de ta Form :

Implement clsFrmSubClassEvent"

me semble obscur... je vais me renseigner dessus ^^
Merci, @+
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 févr. 2007 à 10:51
sympa...

pourquoi faire AddIconsToMenus et AddIconsToMenusMDI ?? elles sont identiques...
(mettre Frm en As Object), et tester le TypeOf (ou TypeName) et faire un Err.Raise si souci...

tes APIs sont déclarées en doublons, dans différents modules
(GetMenu & co)

"Public Property Get GetOverCaption() As String"
renommes la en OverCaption... GetXxxxxxx ca va pour des function, mais pour des properties....

Pourquoi IsAMenuSelected renvoie un Long (1 ou 0) au lieu de :
Un boolean... ou de l'indice de l'element séléctionné...(-1 si rien)

Appelle UnHookFormMenu dans le clsFrmSubClass.Terminate
+ test pour savoir si le subclassing est encore en route

clsFrmSubClassEvent pourrait être remplacé par une Interface, qui ne contiendrais que :
Public Sub OnMenuOver(ByRef strCaption As String)
ainsi tu ferais en haut de ta Form :

Implement clsFrmSubClassEvent

et our lancer le hook :

Call cSub.HookFormMenu(Me.hWnd, Me, CBool(Check1.Value))
(voire même Call cSub.HookFormMenu(Me, CBool(Check1.Value), en extrayant le hWnd dans HookFormMenu)

enlèves le
Debug.Print uMsg & " " & wParam & " " & lParam
dans MaWndProc, le Select case peut laisser sa place a un If Then Else, je pense ^^
Pym Corp Messages postés 166 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 18 novembre 2007
22 févr. 2007 à 10:28
Rien à voir avec ta source mais VB6 sous Vista ça commence à faire bizarre :P
(Et oui ça a déjà 9 ans tout ça)
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
22 févr. 2007 à 10:22
Héhé ;) Effectivement c'est toujours l'éditeur hexa, en cours de construction ^^
Renfield m'avait conseillé de faire apparaitre les captions des menus dans la statusbar car mes menus n'étaient pas tous très clairs, donc j'ai fait un peu de subclassing...

Et comme rajouter des icones était simple, j'ai ajouté çà aussi ^^

Merci, @+
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
22 févr. 2007 à 00:32
Sortir du subclassing pour des icones dans un menu, on peut dire que tu hésite pas à faire complet !
J'imagine que c'est toujours l'éditeur héxa, j'attends vraiment de voir ton ptit chef d'oeuvre ça risque d'etre vraiment bien.
Rejoignez-nous