ImageList

PeterNet Messages postés 11 Date d'inscription samedi 17 septembre 2005 Statut Membre Dernière intervention 28 janvier 2008 - 21 févr. 2006 à 14:14
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 21 févr. 2006 à 19:38
Bonjour,

Comment doit-on déclarer une ImageList1 pour avoir accès à la propriété ImageList1.ListImage(n).Picture....

Un exemple de code serait le bienvenu...

Je galère depuis 2 jours....

Quelqu'un peut-il m'aider... merci

10 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 févr. 2006 à 14:35
il suffit d'ajouter un tel controle sur ta Form...

Renfield
Admin CodeS-SourceS - MVP Visual Basic
0
PeterNet Messages postés 11 Date d'inscription samedi 17 septembre 2005 Statut Membre Dernière intervention 28 janvier 2008
21 févr. 2006 à 14:52
Non, ImageList1. ne me donne pas accès à ListImages...

manifestement il me manque une déclaration..., une dll ou ???
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 févr. 2006 à 17:05
ListImages en VB6
Images en .Net ....

Renfield
Admin CodeS-SourceS - MVP Visual Basic
0
PeterNet Messages postés 11 Date d'inscription samedi 17 septembre 2005 Statut Membre Dernière intervention 28 janvier 2008
21 févr. 2006 à 17:44
Merci pour le temps que tu m'accordes Renfield...

ImagesList1.Images(n) ne me permet pas d'atteindre la propriété Picture.

En fait je cherche à ramener l'image(0) de mon ImageList1 dans un menu via un setMenuItemBitmaps... et je galère depuis 2 jours....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 févr. 2006 à 18:24
pourquoi parles tu de propriété Picture ?
tu n'es pas en VB6 !!!

tout ce qui t'incombe, c'est de récupérer un HBMP, à fournir a l'API....
voici le code nécessaire :

Dim oBmp As System.Drawing.Bitmap
Dim oImg As System.Drawing.Image
oImg = ImageList1.Images(1)
oBmp = New System.Drawing.Bitmap(oImg, oImg.Width, oImg.Height)

'# setMenuItemBitmaps possible avec comme Bitmap : obmp.GetHbitmap
'# Penser a faire un DeleteObject oBmp.GetHbitmap

Renfield
Admin CodeS-SourceS - MVP Visual Basic
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 févr. 2006 à 18:25
à noter qu'un using System.Drawing ne serait pas du luxe, mais là, au moins, tu vois l'arborescence ^^

Renfield
Admin CodeS-SourceS - MVP Visual Basic
0
PeterNet Messages postés 11 Date d'inscription samedi 17 septembre 2005 Statut Membre Dernière intervention 28 janvier 2008
21 févr. 2006 à 18:43
Merci pour ta patience...

J'avance lentement,...
obmp.GetHbitmap n'est pas accessible ??!!

As-tu une idée...

Merci d'avance
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 févr. 2006 à 18:51
as tu bien mis des parenthèses ?

oBmp.GetHbitmap()

tu n'utilises pas Visual Studio ?? tu ne semble pas avoir l'intellisense ....

Renfield
Admin CodeS-SourceS - MVP Visual Basic
0
PeterNet Messages postés 11 Date d'inscription samedi 17 septembre 2005 Statut Membre Dernière intervention 28 janvier 2008
21 févr. 2006 à 19:14
Oui pour les parenthèses...
Si VB Net et Visual Studio 2003.....

En fait la commande SetMenuItemBitmaps attend un 'long' et non un IntPtr ??!!

Voilà le code :


Private
Declare
Function GetMenu
Lib "user32.dll" (
ByVal hwnd
As
Long)
As
Long



Private
Declare
Function GetSubMenu
Lib "user32.dll" (
ByVal hMenu
As
Long,
ByVal nPos
As
Long)
As
Long



Private
Declare
Function GetMenuItemID
Lib "user32.dll" (
ByVal hMenu
As
Long,
ByVal nPos
As
Long)
As
Long



Private
Declare
Function SetMenuItemBitmaps
Lib "user32.dll" (
ByVal hMenu
As
Long,
ByVal nPosition
As
Long,
ByVal wFlags
As
Long,
ByVal hBitmapUnchecked
As
Long,
ByVal hBitmapChecked
As
Long)
As
Long



Private
Const MF_BYPOSITION
As
Long = &H400&

et dans le load de la Form :



Dim hMenu
As
Long



Dim hSousMenu
As
Long



Dim menuID
As
Long



Dim oBmp
As System.Drawing.Bitmap



Dim oImg
As System.Drawing.Image


oImg = ImageList1.Images(1)


oBmp =
New System.Drawing.Bitmap(oImg, oImg.Width, oImg.Height)


hMenu = GetMenu(
Me.hwnd)


hSousMenu = GetSubMenu(hMenu, 0)


SetMenuItemBitmaps(hSousMenu, 0, MF_BYPOSITION, oBmp.GetHbitmap(), 0)

oBmp.GetHbitmap est refusé car non 'long'

As-tu une idée ??

Merci d'avance
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 févr. 2006 à 19:38
et bien castes le, si c'est ça ton pbm ^^ (fais en un Long)

Renfield
Admin CodeS-SourceS - MVP Visual Basic
0
Rejoignez-nous