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 !

INSÉRER UNE ICÔNE DANS UN MENU 'POPUP'


Information sur la source

Catégorie :Trucs & Astuces Classé sous : icône, popupmenu, astuce, ajouter Niveau : Débutant Date de création : 07/12/2005 Vu / téléchargé: 5 911 / 1 237

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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

Description

Cliquez pour voir la capture en taille normale
L'API SetMenuItemBitmaps permet d'insérer une icône dans un menu VISIBLE d'une form. Dans le cas d'un menu popup (INVISIBLE), ça ne fonctionne malheureusement pas. Pour contourner cette limitation (ou ce bug, je c pas...), j'ai procédé de la façon suivante :
- le menu devant s'afficher par popup est placé en dernière position
- sa propriété Visible est mis à True (très important !)
- sa propriété Enabled est mis à False et son texte est " " (espace) pour ne pas attirer l'oeil de l'utilisateur

Il en résulte un popupmenu avec icônes !
 

Conclusion

J'invite ceux qui feraient tourner le code joint à essayer en remplaçant la propriété Visible de zMenu1 par False. Chez moi, impossible d'insérer une icône dans ce cas. Si vous avez une explication, je suis évidemment preneur :-)
 

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

Commentaires et avis

signaler à un administrateur
Commentaire de Sniper_Vgaerr le 07/12/2005 12:39:05

Salut,

Ton code est bien, bien commenté, le seul incovenient c'est que tu n'utilise pas de imagelist, car si tu fais un menu a 20 entrée, tu ne peux pas stocker tes 20 images sur ta form, il faut les mettre dans une imagelist. Sinon c'est bien.
7/10
@+

signaler à un administrateur
Commentaire de Renfield le 07/12/2005 13:09:39 administrateur CS

Sniper_VgaErr l'imagelist n'est pas obligatoire, loin de là...

d'autant plus que a rajoute une dépendance a ton programme.

Outre le fait de pouvoir distribuer les fichiers .ico, je pense que la meilleure solution serait de les ajouter en ressource de l'executable

signaler à un administrateur
Commentaire de Egyde le 07/12/2005 13:47:09

D'après mes propres essais, l'image doit rester dans la picturebox que l'on transmet à l'API SetMenuItemBitmaps si l'on veut qu'elle s'affiche correctement : si la feuille ne contient qu'une seule picturebox que l'on update au fur et à mesure (à partir d'une imagelist ou des ressources exe), seule la dernière icône est affichée (toutes les images précédentes ayant été effacé de la picturebox). C'est pourquoi j'ai préféré placé +eurs picturebox, une pour chaque icône à insérer.

signaler à un administrateur
Commentaire de Renfield le 07/12/2005 13:57:48 administrateur CS

SetMenuItemBitmaps a besoin d'un HBitmap (objet API)...
si tu as plusieurs PictureBox, tu as plusieurs HBitmap...

cette solution fonctionne, mais est un peu maladroite. on preferera créer des Bitmap (via, par exemple CreateCompatibleBitmap...)

signaler à un administrateur
Commentaire de Sniper_Vgaerr le 07/12/2005 22:22:18

Re,

Autant pour moi je pensais que c'était moins gourmant de mettre une imagelist que de stocker les icones sur la form. Sinon comment tu fais pour mettre des icones en fichier ressource ? Merci
@+

signaler à un administrateur
Commentaire de stef2004 le 09/12/2005 23:26:43

2 choses à dire:
source très utile à mon avi... hier je me demandais qomment ils ont fait chez mozilla pour insérer le favicon comme image dans tes marque-pages... lol
bravo en tout cas

d'autre part, un petit message pour Sniper_Vgaerr: on ne dit pas "Autant pour moi", mais "Au temps pour moi". Pour ne pas avoir à donner es explications deux commentaires plus loin, cela vient du langage militaire ou un officier supérieur disait à un soldat qui a mal fait le mouvement: "au temps!", pour qu'il recommence après s'être trompé. Voilou faute très courante :)

a+
stef2004
http://www.stef2004.com

signaler à un administrateur
Commentaire de Silmon le 14/12/2005 19:58:25

- stef2004
  C'est vrai le truc du "autant pour moi"?

- Egyde
  Astucieuse ton...astuce.
Question:
  Et si tu place un icon sur ton menu et aprés tu le met a invisible.

signaler à un administrateur
Commentaire de Egyde le 14/12/2005 21:42:10

Pour répondre à Silmon, rendre le menu invisible APRES insertion des icônes...les effacent :-c

signaler à un administrateur
Commentaire de stef2004 le 17/12/2005 06:29:50

2ème réponse à Silmon, je t'assure que c'est vrai, c'est bel et bien "Au temps pour moi", c'était dans un petit bouquin chez Librio, du genre "les pièges du français" ou quelque chose comme ça, avec les ereurs les plus répandues.
a+

signaler à un administrateur
Commentaire de Silmon le 21/12/2005 13:51:23

Merci pour vos infos

signaler à un administrateur
Commentaire de leglilegli le 08/05/2006 10:13:18

On doit utiliser "autant pour moi" s'il est question d'une même chose ou d'une quantité et "au temps pour moi" si il est question d'une erreur... Voila une petite précision tout à fait inutile de ma part, mais je n'ai pas pu m'en empêcher ;-)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

API pour icônes [ par Xaviou ] Salut,Je suis à la recherche d'une API pour afficher la boite de dialogue de changement d'icône (boite que l'on peut obtenir, lorsque l'on regarde les Désactiver le PopupMenu windows ? [ par Karim ] Bonjour,Existe-t-il un moyen de désactiver le Popupmenu qui se trouve par défaut pour le Textbox, c'est pour le remplacer par un autre.Pour l'instant, script d'installation - ajout de fichiers [ par Georef ] Bonjour,lors de la génération d'un pgm d'installation, je dois ajouterde nombreux fichiers de données. La manipulation"ajouter", choix du fichier... e Comment ajouter un mot au curseur dans une texbox [ par Fagu ] Dans une texbox je voudrais ajouter un mot en cliquant sur un objet au niveau du curseur dans la texbox. Est-ce possible ? Ou bien selectionner avec l suite a l'astuce Programme autonome [ par Cameleon ] BonjourQuelqu'un a t il essayer cette astuce et surtout y est il parvenu?J'ai bien essayer en suivant les instructions fournis dans l'astuce mais rien Upload de fichiers [ par Pat ] Je souhaite ajouter la fonction, upload de fichier sur mon site pour permettre aux visiteurs de poster des fichier zip.Mon site est hébergé sur un ser comment ajouter Controles internets en vb [ par Natij ] bonjour,j'aimerai avoir des infos sur l'ajout de controle internet dans un programme vb merci logicave@yahoo.fr Ajouter un nouvel enreg ds une table depuis VB. URGENt!! [ par flo ] COmment depuis Vb (Avec ADO) ajouter un enregistrement ds une table de ma bd Access?Faut il utiliser ALTER TABLE nom_table(........,....)?Merci de vot basse de donnée [ par indurain ] Salut,J'essai présentement pour la première fois à travailler avec une basse de donnée. Mon problème est que je désire faire saisir des informations e ajouter 1 colone a 1 dbGrid [ par tom ] Comment puis je ajouter une colonne dans mon dbGridla question est stupide mais tant pismerciTom


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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 : 0,187 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é.