Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
963 connectés 

  FORUM HardWare.fr
  Programmation

  [C++] Changer l'icône de son application

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Changer l'icône de son application

n°51060
antsite
Je me souviens
Posté le 04-08-2001 à 14:08:01  profilanswer
 

Comment changer l'icône mise par défaut lorsque l'on crée un application Win32 (une petite fenêtre), par une icône de son choix ?

mood
Publicité
Posté le 04-08-2001 à 14:08:01  profilanswer
 

n°51142
zop
1 world, 1 web, 1 Windows
Posté le 05-08-2001 à 19:07:51  profilanswer
 

Une fois ton icône créée, il faut enregistrer ladite icône dans la structure qui représente la classe de ton appli, il y a un champs dédié mais je ne me rappelle pas son nom.

n°51177
Carbon_14
Posté le 06-08-2001 à 08:51:54  profilanswer
 

En C, il y a une (voire plus) ressource(s) dans le fichier .RC.
 
BOOL InitApplication(HANDLE hInstance)    /* current instance  */
{
    WNDCLASS  wc;
 
//Fill in window class structure with parameters that describe the main window.                                                          */
.....
    wc.hIcon = LoadIcon(wc.hInstance, "IDI_APPICON0" );
 
    /* Register the window class and return success/failure code.            */
    return RegisterClass(&wc);
}
 
C'est l'icône par défaut. Dans propriétés\raccourci (click droit sur raccourci du programme), on peut changer l'icône avec une autre de celles contenues dans le fichier de ressources, voire ailleurs.
 
En C++, ça doit ressembler ?

n°51181
antsite
Je me souviens
Posté le 06-08-2001 à 09:13:57  profilanswer
 

J'ai mis ce code mais ça ne marche pas !
 
WNDCLASS wc;
 
wc.hIcon = LoadIcon(hInstance,"D:\\ico\\LAYOUT.ico" );
RegisterClass(&wc);

n°51186
zop
1 world, 1 web, 1 Windows
Posté le 06-08-2001 à 09:33:47  profilanswer
 

antsite a écrit a écrit :

J'ai mis ce code mais ça ne marche pas !
 
WNDCLASS wc;
 
wc.hIcon = LoadIcon(hInstance,"D:\\ico\\LAYOUT.ico" );
RegisterClass(&wc);  




 
Il faut mettre l'icone dans le projet c-à-d dans le fichier de ressources du projet. Donnez un emplacement sur le DD ne marche pas, il me semble.


---------------
- "Qui diable es-tu ?"
n°51191
Carbon_14
Posté le 06-08-2001 à 10:06:09  profilanswer
 

Une variable du fichier RC "donne" le nom du fichier ICONE.
S'il y a une adresse absolue, si elle est liée à l'EXE, comment trouvera-t-il l'icône sur D:\\...\... du PC utilisateur ? L'éditeur de ressources doit le refuser a priori.
 
Il faut faire une copie de l'icône ou des icônes dans le répertoire où se trouve le projet, mais pas indiquer un chemin absolu.
 
dans mon fichier RC, j'ai 5 icônes pour mon application
IDI_APPICON0 ICON MOULINET.ICO
IDI_APPICON1 ICON MOULINEU.ICO
IDI_APPICON2 ICON MOULINEV.ICO
IDI_APPICON3 ICON MOULINEW.ICO
IDI_APPICON4 ICON MOULINEW.ICO
c'est la première qui a été choisie par défaut, mais les autres sont disponibles dans l'EXE.

n°51195
H4dd3R
Q2
Posté le 06-08-2001 à 10:12:46  profilanswer
 

La solution la + simple:
 
tu crées 2 images en bmp pour ton icone, en 32*32*8 et en 16*16*8..
 
Ensuite ds tes ressources tu fais insert/bmp tes 2 images.
 
Tu sélectionne tte l´image 32*32, ctrl-C, tu vas sur ton icone en 32*32, ctrl-V.
Pareil en 16*16..
 
Et tu détruit tes 2 bmps des ressources.. Voilà.. :)


---------------
Athlon64 s754 10*200MHz - R9800Pro - 512MB DDR200MHz - ZX6RR - Q2[SupOp] - Tutorial Video: multilangues, multisstitres
n°51276
antsite
Je me souviens
Posté le 06-08-2001 à 15:31:41  profilanswer
 

Le problème c que je connais pas très bien le C++ et que j'ai créé un application Win32 sans assistand et donc pas de fichier .rc... Qqn peut-il m'expliquer en 3 mots comment en créer un ?

n°51554
antsite
Je me souviens
Posté le 07-08-2001 à 18:08:39  profilanswer
 

J'ai mis ça et ça ne marche toujours pas, mon .exe a toujours l'icône de base.
 
WNDCLASS wc;
wc.hIcon = LoadIcon(hInstance,IDI_EXCLAMATION);
RegisterClass(&wc);

n°51636
Carbon_14
Posté le 08-08-2001 à 09:09:55  profilanswer
 

Si l'application a un menu, il doit y avoir un fichier .RC (caché qq part ?  :) ).
 
Le IDI_EXCLAMATION, il est défini où ? C'est une ressource d'icône ?
Il faut dessiner (ou trouver) un dessin/une icône qq part. L'éditeur de ressources contient un dessinateur d'icônes (du moins sous Borland).
 
Entre guillemets le IDI_EXCLAMATION, ça irait pas mieux ?

mood
Publicité
Posté le 08-08-2001 à 09:09:55  profilanswer
 

n°51663
antsite
Je me souviens
Posté le 08-08-2001 à 10:24:17  profilanswer
 

IDI_EXCLAMATION est déjà défini dans VC++
Ca compile sans pb. Mon application n'as pas de menu (ni de fenêtre d'ailleurs). Elle se content d'éxécuter du code sans
rendu graphique. Je souhaite juste changer l'icône de l'éxécutable.

n°51737
Carbon_14
Posté le 08-08-2001 à 13:40:34  profilanswer
 

Je viens d'essayer avec un de mes prog sous BC 5.02. Si j'utilise IDI_EXCLAMATION (avec ou sans guillemets), j'ai toujours l'icône par défaut, celle que j'ai dessinée... Bizarre..
 
J'ai oté la ligne contenant le nom de l'icone dans le fichier .RC.
 
J'ai regardé l'aide. Ils disent qu'il faut mettre hInstance à NULL si on utilise l'un des IDI_XXXX de Windows. J'ai fait, c'est pas bon : pas d'icône dans l'EXE !!
 
 
Si une icône est déja disponible, il faudrait la copier dans le répertoire où est/sont les fichiers .C(PP), créer un fichier toto.rc (à ajouter aux fichiers du projet (add node en BC5)), ce fichier comprenant les deux lignes
 
#include <windows.h>
 
IDI_APPICON ICON LAYOUT.ICO
 
 
et dans le fichier C(PP)
 
BOOL InitApplication(HANDLE hInstance)    /* current instance  */
{
    WNDCLASS  wc;
 
    wc.style = ...;  
    wc.lpfnWndProc = (WNDPROC)SpectroProc; (pour moi)
    wc.cbClsExtra = 0;    
    wc.cbWndExtra = 0;  
    wc.hInstance = hInstance;  
    wc.hIcon = LoadIcon(wc.hInstance, "IDI_APPICON" );
ou
    wc.hIcon = LoadIcon(wc.hInstance, MAKEINTRESOURCE(IDI_APPICON));
 
.....
    return RegisterClass(&wc);
}
 
 :??:

n°52091
antsite
Je me souviens
Posté le 09-08-2001 à 14:38:06  profilanswer
 

Génial ça marche ! Merci d'avoir été patient !
a+


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C++] Changer l'icône de son application

 

Sujets relatifs
comment changer la couleur d'un texte en php sans le code couleur???[WIN32] Application "single instance"
[VB6] Comment changer la valeur d'un ToggleButton sans evenementest il possible de changer la couleur d'un champ texte avec Netscape
Comment envoyer un mail a partir d'une application?[HTML et Scripts] changer la couleur des ascenseurs ?
[JAVASCRIPT] changer la couleur des liens d'une pageHTML dreamweaver : changer un répertoire de place ?
icone win[VB] Mettre une application en ARRIERE plan
Plus de sujets relatifs à : [C++] Changer l'icône de son application


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR