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 !

AJOUTER DES IMAGES DANS UN MENU


Information sur la source

Catégorie :API Niveau : Expert Date de création : 25/06/2003 Date de mise à jour : 26/06/2003 09:45:29 Vu / téléchargé: 6 727 / 2 213

Note :
6,33 / 10 - par 6 personnes
6,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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

Description

Ce code permet d'ajouter des images (BITMAP, attention, les icones ne sont pas supportées) dans un menu d'application... Il suffit de passer en paramètre le libellé d'item de menu à modifier, ainsi que l'image à afficher. Celle ci peut être venir d'une PictureBox ou d'une ImageList. Grosse amélioration par rapport aux codes que l'on peut trouver sur le net : sachant que la dimensions des images de menu sont dynamiques (en fonction de la résolution), ce code redimensionne automatiquement le bitmap avant de la plaquer sur le menu. Vous avez donc possibilité d'utiliser directement des bitmaps 16x16, 32x32 voire plus, ils seront pris en charge automatiquement.
A la demande générale, g tout remis dans un ZIP  
 

Conclusion

Attention toutefois lorsque vous passez des bitmap bcp + grands que la dimensions des images de menu : le redimensionnement risque de pas être très très joli  
 

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 laestrella le 25/06/2003 15:56:21

T'es un fou toi de laisser ça sans fichier ZIP lol.
C'est bien joli mais je te conseil de le mettre dans un Zip. ça sera plus facile pour tout le monde.

signaler à un administrateur
Commentaire de max12 le 25/06/2003 16:41:15 administrateur CS

C'est vrai qu'un zip serais fortement interressant pour les débutants :)

signaler à un administrateur
Commentaire de LogOff le 25/06/2003 16:59:46

Ce code a l'air super (et surtout simple à utiliser !), mais la ligne:
Dim CurBitmap As bitmap provoque une erreur :
type défini par l'utilisateur non défini

Quelqu'un pourrait-il résoudre le pb ?
Merci d'avance

signaler à un administrateur
Commentaire de Urgo le 25/06/2003 17:30:47

Un zip pour les flémards comme moi :)

signaler à un administrateur
Commentaire de psycho le 25/06/2003 19:55:25

g rajouté ca et ca marche...
Private Type BITMAP '14 bytes
        bmType As Long
        bmWidth As Long
        bmHeight As Long
        bmWidthBytes As Long
        bmPlanes As Integer
        bmBitsPixel As Integer
        bmBits As Long
End Type
(issu de la visionneuse d api.)
++
psycho

signaler à un administrateur
Commentaire de jmluc le 26/06/2003 08:35:08

J'avais vu bien plus simple y'a qques temps pour un développement :
Dans un module :
Public Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function SetMenuItemBitmaps Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long
'
Public Const M_BITMAP = 4&

Dans ta form :

Private Sub Form_Load()
Dim hMenu As Long
Dim hSousMenu As Long
Dim ID As Long
'
'*** REM : le premier sousmenu a pour index 2, le suivant 3 etc...

hMenu = GetMenu(Me.hwnd)
'*** Premier sous-menu <ouvrir>
'
ID = 2
SetMenuItemBitmaps hMenu, ID, M_BITMAP, PicOuvrir.Picture, PicOuvrir.Picture
'*** Deuxième Sous-Menu <Enregistrer>
'
ID = 3
SetMenuItemBitmaps hMenu, ID, M_BITMAP, PicEnregistrer.Picture, PicEnregistrer.Picture

ID = 5
SetMenuItemBitmaps hMenu, ID, M_BITMAP, PicStop.Picture, PicStop.Picture



End Sub

Private Sub mnuQuitter_Click()
End
End Sub

Cela suppose que tes images sont sur la form en non visible...
Mais ça marche bien
jmluc@jmlucienvb.org

signaler à un administrateur
Commentaire de EBArtSoft le 26/06/2003 09:15:08 administrateur CS

C'est vrais que la methode de jmluc est typique et bien plus simple cela dit pour utiliser les icones on peut utiliser ta methode avec l'API drawicon au lieu de stretchblt !

j'y comprend rien au "niveau" mais niveau le niveau 3 ne me semble
pas etre adapté...

mauvais point je ne sait pas si tu as testé ta source avant de la balancer compte tenu des oublis comme celui de liberer la memoire du bitmap en fin de routine :

hStretchBitmap = CreateCompatibleBitmap(...)
...
DeleteObject hStretchBitmap

je met 5/10

Applique toi, continue et B@nne prog

signaler à un administrateur
Commentaire de Matesys le 26/06/2003 09:18:39

Le code de jmluc marche effectivement, ct la 1ère version que j'avais écrite... Seulement, ce code oblige à avoir des images préformattées ayant une taille valide, c-a-d correspondant à la taille définie par le système avec la résolution écran en cours... Ici, je peux envoyer des images en 48x48 qui seront redimensionnées avec la taille ad hoc... Pour le type BITMAP, g mis à jour le code

signaler à un administrateur
Commentaire de jmluc le 26/06/2003 09:29:54

Je vais testé ta nouvelle méthode...
En attendant ton travail est bien...8/10
jmluc

signaler à un administrateur
Commentaire de laestrella le 26/06/2003 09:57:20

Merci pour le zip et c'est mieux d'en mettre un à chaque fois

signaler à un administrateur
Commentaire de Jujufouq le 27/06/2003 00:05:46

Intéressant, mérite qu'on se penche dessus. Bonne note.

signaler à un administrateur
Commentaire de KeepCool37 le 26/03/2004 18:13:38

ça ne veut pas marcher !!!!

A la base, il manquait :

Public Const SRCCOPY = &HCC0020 ' (DWORD) dest = source

Pi j'vois tjrs pas ma zimage dans le menu !

signaler à un administrateur
Commentaire de benzinafouad le 12/04/2004 19:43:56

Pourquoi ne pas faire un exemple dans le zip?!!!!!!!!!!!! c bizzar

signaler à un administrateur
Commentaire de Egalon le 25/08/2004 15:42:25

C'est clair qu'on y voit rien!
Un exemple serait le bienvenu.
Merci

signaler à un administrateur
Commentaire de tmeg le 02/09/2004 17:13:48

oui un exemple et plus de commentaire serais le bienvenue mais sinon nikel

signaler à un administrateur
Commentaire de scoob79 le 03/11/2004 22:32:44

cela ne marche pas chez peut-être que je ne sais pas le faire fonctionner j'attend le zip avec demo.

signaler à un administrateur
Commentaire de KeepCool37 le 12/11/2004 13:54:47

Cette source ne fonctionne pas sur ma machine XP.
J'ai essayé d'essayer de comprendre et il semble que cela vienne d'un problème de compatibilité avec l'ImageList.
Il faut prendre l'ImageList issue de la librairie de composants COMCTL32.ocx dans Microsoft Windows Common Controls 5.0 (SP2) (voir le menu Projet/Composant... dans l'ide VB6) et non celle de MSCOMCTL.ocx dans Microsoft Windows Common Controls 6.0 (SP6)
En redéfinissant les icons ça marche du tonner !!!!!!!

signaler à un administrateur
Commentaire de zeunz le 23/01/2005 22:52:00

slt  j'ai essaye la methede d'ARTSoft, et ca ne marche ke pr les fichiers image avec une largeur et hauteur de 12 cm chacun. ms si c'est plus grand, le menu me coupe l'image....

signaler à un administrateur
Commentaire de Rifton007 le 31/01/2005 18:29:21

Comment sa fonctionne j'ai rien compris.

signaler à un administrateur
Commentaire de pekch le 02/07/2006 01:25:37

arg j'ai plein d'erreur (WMain.hwnd, y connait pas et moi non plus, et ya le truc avec sccopy...)
bon bref de toute facon j'en ai pas vraiment besoin, mais bon ca aurait été un plus ;)

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode



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,42 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é.