IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Extraire les icônes d'une DLL


Sujet :

MFC

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Extraire les icônes d'une DLL
    J'aimerais utiliser les icônes de Windows dans une application ... Extraire par exemple une icône de shell32.dll et l'associer à un item d'un TreeList ? Comment dois-je faire ?

  2. #2
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 17
    Points : 20
    Points
    20
    Par défaut
    Voici:

    Exemple repris du SUPER logiciel API-Guide ( http://www.allapi.net )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    'This project needs a PictureBox, called 'Picture1'
     
    'In general section
    Private Declare Function DrawIcon Lib "user32" Alias "DrawIcon" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
    Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
    Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
     
     
    Private Sub Form_Load()
        'KPD-Team 1998
        'URL: http://www.allapi.net/
        'E-Mail: KPDTeam@Allapi.net
     
        Dim Path as String, strSave as string
        'Create a buffer string
        strSave = String(200, Chr$(0))
        'Get the windows directory and append '\REGEdit.exe' to it
        Path = Left$(strSave, GetWindowsDirectory(strSave, Len(strSave))) + "\REGEdit.exe"
        'No pictures
        Picture1.Picture = LoadPicture()
        'Set graphicmode to 'persistent
        Picture1.AutoRedraw = True
        'Extract the icon from REGEdit
        return1& = ExtractIcon(Me.hWnd, Path, 2)
        'Draw the icon on the form
        return2& = DrawIcon(Picture1.hdc, 0, 0, return1&)
    End Sub

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Rapide et efficace, je vais tester ça ... Merci

  4. #4
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 61
    Points : 83
    Points
    83
    Par défaut
    C'est un forum VC++ et non VB.
    Regarde l'API ExtractIcon
    A+ !

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 17
    Points : 20
    Points
    20
    Par défaut
    J'avais même pas fait attention...

    Mais bon, à part le codage pur, l'esprit reste le même...

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Bendes
    J'avais même pas fait attention...

    Mais bon, à part le codage pur, l'esprit reste le même...
    Ben oui, c'est pour cela que cela m'a quand même aidé
    La seule chose c'est que les icônes que j'associe au CTreeCtrl ne sont pas affichées avec une super qualité ... On dirait que CImageList éprouve des difficultés à convertir des icônes en bitmap ... Si qqn sait comment améliorer la qualité d'affichage / conversion cela m'intéresse :-)

    Voici le code que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    //	m_Images.Create(16, 16, ILC_COLOR32 | ILC_MASK, 5, 1);
     
    void CTreeMp3::Init()
    {
    	// Recherche de "shell32.dll" (pour les icônes)
    	UINT Length;
    	char *szBuffer;
    	Length = GetSystemDirectory(NULL,0);
    	szBuffer = new char[Length+1];
    	GetSystemDirectory(szBuffer, Length);
     
    	CString path;
    	path.Format("%s\\shell32.dll", szBuffer);
    	delete[] szBuffer;
     
    	// Extraire les icônes
    	CBitmap bitmap;
    	HICON icon;
    	icon = ExtractIcon(AfxGetInstanceHandle(), path, (DWORD) 160); // Artistes
    	m_Images.Add(icon);
    	...
     
    	SetImageList(&m_Images, TVSIL_NORMAL);	
    }

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Je fais les demandes et les réponses seul :-)

    La fonction qu'il faut utiliser est : ExtractIconEx

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [À télécharger] Extraire les icônes d'un fichier EXE ou DLL
    Par SfJ5Rpw8 dans le forum Vos téléchargements VB6
    Réponses: 0
    Dernier message: 13/11/2010, 19h43
  2. Réponses: 2
    Dernier message: 18/10/2005, 08h05
  3. Question sur exports et les classes (pour une dll)
    Par DjPoke dans le forum Langage
    Réponses: 7
    Dernier message: 08/08/2005, 19h25
  4. Comment connaître les fonctions d'une DLL ?
    Par bencot dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 15/06/2005, 09h25
  5. [C#] Extraire l'interface d'une dll
    Par Thalion dans le forum Windows Forms
    Réponses: 4
    Dernier message: 07/10/2004, 08h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo