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

Visual C++ Discussion :

[shell32.dll]comment utiliser les icones ?


Sujet :

Visual C++

  1. #1
    Membre habitué Avatar de deeal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 218
    Points : 169
    Points
    169
    Par défaut [shell32.dll]comment utiliser les icones ?
    bonjour,

    savez vous comment faire pour recuperer les icones enregistrees dans shell32.dll, j'ai beau chercher sur google, mais je ne trouve pas grand chose?
    avez vous une idee?
    Merci

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    ca dépend de ce que tu veux faire, regarde dans la faq http://c.developpez.com/faq/vc/?page...etIconFromFile

  3. #3
    Membre habitué Avatar de deeal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 218
    Points : 169
    Points
    169
    Par défaut
    en fait je voudrais generer des icones multi frame (deja j'ai un probleme avec cela avec VS2005), mais je suis arriver a generer des bmp multiframe)

    et je veux prendre de shell32.dll les icones des repertoires de differentes taille, car dans le repertoire windows je n'ai trouve que l'icone 16*16

    je vais voir le code que tu m'as envoie nico

    Merci

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Tu veux générer ces icônes par un programme, ou les dessiner toi-même, par exemple avec l'éditeur de ressources des VS 2005 non-express ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre habitué Avatar de deeal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 218
    Points : 169
    Points
    169
    Par défaut
    en fait je voudrais les generer automatiquement, car il y'en a plein, et ce que j'ai c'est des Tiff, voila le code que j'ai reussi a obtenir pour l'instant, mais j'ai un outil pour creer des icones apartir de Bmp, mais il n'arrive pas a ouvrir les fichier que j'ai genere avec VS

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
     private void createIcons_Click(object sender, EventArgs e)
        {
          string[] Files;
          InputFolder = "D:\\XXXX";
          // get the Tif files in the Input Directory
          Files = Directory.GetFileSystemEntries(InputFolder, "*.tif");
     
          int FileCount = Files.GetUpperBound(0) + 1;
          if ((FileCount % 2) != 0)
            return;
     
          int NumberOfFrames = FileCount / 2;
     
          Array.Sort(Files);
     
          Bitmap[] Images = new Bitmap[NumberOfFrames];
          System.Drawing.Icon FolderIcon = new Icon(InputFolder + "\\folder.ico"); // a remplacer
          int[] Sizes = new int[5] { 16, 24, 32, 48, 96 };
          for (int i = 0; i < NumberOfFrames; i++)
          {
            Bitmap bmp1 = new Bitmap(Files[i * 2]);
            Bitmap bmp2 = new Bitmap(Files[i * 2 + 1]);
            Bitmap folderbmp = FolderIcon.ToBitmap();
            Bitmap folderbmp1 = new Bitmap(folderbmp, Sizes[i], Sizes[i]);
            Images[i] = MergeTwoImage(bmp1, bmp2, folderbmp1);
            Images[i].Save("D:\\Icone1_"+Sizes[i]+".bmp"); /// pour tester les images une a une, mais Gif viewer n'arrive pas a les ouvrir
          }
     
          ToMultiPageImage(Images, "c:\\final.bmp");
       }
     
    //
     
    private void ToMultiPageImage(Image[] pages, string fileName)
        {
          Bitmap image = new Bitmap(pages[0]);
          FileStream stream = new FileStream(fileName, FileMode.OpenOrCreate);
     
     
          // Get an encoder for saving with
          System.Drawing.Imaging.Encoder enc = new System.Drawing.Imaging.Encoder(System.Drawing.Imaging.Encoder.SaveFlag.Guid);
          //Obtain the TIFF codec info.        
          ImageCodecInfo info = GetCodec("image/tiff");// la si je met image/bmp il crache
          //Create a parameter list. This needs 1 parameter in it.
          EncoderParameters ep = new EncoderParameters(1);
          //Place the MultiFrame encoder value in the parameter list
          ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.MultiFrame);
     
     
          //Save the first frame using the encoder and parameters
          image.Save(stream, info, ep);
          //Change the encoder value in the list to FrameDimensionPage
          ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.FrameDimensionPage);
          //Use first of the master frame's overloaded SaveAdd methods to add subsequent images. Repeat this step for as many images as you want to add.
          for (int i = 1; i < pages.Length; i++)
            image.SaveAdd(pages[i], ep);
          //Use the second of the master frames overloaded SaveAdd methods to flush, save and close the image.
          ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.Flush);
          image.SaveAdd(ep);
     
          stream.Close();
     
        }
    mais pour les icones je ne trouve pas comment faire cela avec .Net 2.0 GDI+

    et pour le shell 32 je voudrai remplacer ces deux instructions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     System.Drawing.Icon FolderIcon = new Icon(InputFolder + "\\folder.ico"); // a remplacer
     
     
    //genre zoom
     
    Bitmap folderbmp1 = new Bitmap(folderbmp, Sizes[i], Sizes[i]);
    vous voyez un peu le probleme?

    Merci

  6. #6
    Membre habitué Avatar de deeal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 218
    Points : 169
    Points
    169
    Par défaut
    et j'ai trouve un autre truc VS ne conserve pas les Alpha channel quand il convertit du format tiff en bmp
    je crois qu'il faut que je code cela from scratch

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    C'est du C#, ça, non ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tu peux aussi utiliser l'api ExtractIcon

  9. #9
    Membre habitué Avatar de deeal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 218
    Points : 169
    Points
    169
    Par défaut
    Citation Envoyé par Médinoc
    C'est du C#, ça, non ?
    oui c du C# mais je me suis dis j'ai plus de chance de trouver des references en C++, et je creerai un projet en C++ :-)

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/07/2009, 17h10
  2. Réponses: 2
    Dernier message: 28/05/2006, 11h34
  3. comment utiliser les fonctions d'une dll
    Par sebled dans le forum MFC
    Réponses: 3
    Dernier message: 24/02/2006, 16h59
  4. Réponses: 11
    Dernier message: 22/12/2003, 21h06
  5. Comment utiliser les styles XP avec Dev-C++?
    Par abraxas dans le forum Dev-C++
    Réponses: 3
    Dernier message: 05/10/2003, 19h47

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