Bonjour,
je développe une application (C++) qui doit pouvoir changer lors de l'exécution l'icône apparaissant dans la barre des taches.
L'icône de l'application (celle qui apparait dans l'explorer) a été définie de manière habituelle avec un fichier de ressources. Lors de l'exécution, je modifie l'icône liée à ma fenêtre. Sous WinXP, tout se passe correctement, l'icône dans la barre des taches se met à jour. Par contre, sous Win7, l'icône dans la barre des tâches n'est pas modifiée, par contre celle en haut à gauche de la fenêtre est bien mise à jour (pareil quand je fais un alt-tab par exemple, l'icône est bonne). Il y a une méthode (tordue ) de voir la bonne icône : épingler puis désépingler le programme à la barre des tâches, l'icône est alors correcte... jusqu'au prochain clic droit dessus
J'ai essayé différentes méthodes pour modifier cette icône : d'abord, mon appli étant développée avec Qt, la méthode proposée par Qt (QWidget::setWindowIcon()), puis les appels directs à l'API windows (SetClassLong(hWnd, GCL_HICON, icon, SendMessage(hWnd, WM_SETICON, ICON_BIG ou ICON_SMALL, icon)). (Toutes testées sur XP pour vérifier que les appels étaient correctement effectués), elles ont toutes donné le même résultat.
Y'a t'il une solution à mon problème ? (je commencerais à croire que Win7 conserve toujours l'icône liée à l'exécutable, mais la manip d'épingler / désépingler semble prouver le contraire)
Merci de votre aide
Partager