Changer dynamiquement icône application PB

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
cage
Messages : 506
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Changer dynamiquement icône application PB

Message par cage »

Bonjour a tous,

Est-il possible de changer dynamiquement l'icône d'une application PB (celle qui s'affiche en haut a gauche de la fenêtre de l'application) comme on peut le faire avec ChangeSysTrayIcon(#SysTrayIcon, ImageID)

Merci pour l'aide que vous pourrez m'apporter.
cage
■ Win10 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.00 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
Avatar de l’utilisateur
case
Messages : 1527
Inscription : lun. 10/sept./2007 11:13

Re: Changer dynamiquement icône application PB

Message par case »

en utilisant les api windows

Code : Tout sélectionner

;d'apres le code de rsbasic.de

hIcon = ExtractIcon_(0, #PB_Compiler_Home + "PureBasic.exe", 1)

If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  SendMessage_(WindowID(0),#WM_SETICON,#False,hicon) 
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf


DestroyIcon_(hIcon)

ImageImage
Avatar de l’utilisateur
cage
Messages : 506
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Re: Changer dynamiquement icône application PB

Message par cage »

Merci case pour ta réponse.
C'est ce que je cherchais a faire avec juste une petite modification.
Voici le code modifié pour arriver a mes fins:

Code : Tout sélectionner

DataSection ; Images
  Image_App1:
  IncludeBinary "icones\app1.ico"
  Image_App2:
  IncludeBinary "icones\app2.ico"
  Image_App3:
  IncludeBinary "icones\app3.ico"
EndDataSection

Enumeration Images
  #Image_App1
  #Image_App2
  #Image_App3
EndEnumeration

Global Icon1 = CatchImage(#Image_App1, ?Image_App1)
Global Icon2 = CatchImage(#Image_App2, ?Image_App2)
Global Icon3 = CatchImage(#Image_App3, ?Image_App3)

NewMap image()
image("1") = Icon1
image("2") = Icon2
image("3") = Icon3

If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  Repeat
    ForEach image()
      SendMessage_(WindowID(0),#WM_SETICON,#False,image())
      Delay(1000)
      WindowEvent()
    Next
  Until WaitWindowEvent(20) = #PB_Event_CloseWindow

EndIf

DestroyIcon_(hIcon)
Les icônes sont embarquées directement dans l’exécutable et selon les circonstances, je peux adapter l'icône de la fenêtre.

Merci pour ton aide.
cage
■ Win10 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.00 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
Répondre