Das Icon der Anwendung ändern können



  • habs so versucht. Es ändert sich das Icon jedoch nicht.
    habe danach nochmal updatedata aufgerufen.



  • Also bei mir geht das setzen aus einer Resource sowie aus einen File wunderbar.

    //Laden aus einer Resource
    ::AfxGetMainWnd()->SetIcon(::AfxGetApp()->LoadIcon(IDI_ICON1),TRUE);
    //Laden aus einem File *.ico
    ::AfxGetMainWnd()->SetIcon((HICON)LoadImage(::AfxGetInstanceHandle(),"C:\\Cprog\\Graphics\\icons\\Win95\\35FLOPPY.ICO",IMAGE_ICON,16,16,LR_LOADFROMFILE),TRUE);
    

    Gruß



  • Hallo, also ist schon komisch. Ich sehe hier keine Veränderung.
    Kompilieren geht ja auch wunderbar, aber das IDR_MAINFRAME
    wird nicht ersetzt.

    Ich meine jetzt sowohl das Icon der EXE, als auch das Icon welches
    sich oben links im Titel der Anwendung befindet.



  • Ok, es geht jetzt. Es lag offenbar an dem verwendeten Icon.
    Aber das Icon der EXE ansich, wie ändere ich das
    (also im Ordner wenn ich mir die Datei ansehe)?

    Vermutlich ist das nicht so einfach möglich, oder?



  • Wenn Du das Icon des Prgs im Verzeichnis ändern willst, mußt Du das Icon von IDR_MAINFRAME ändern. Dabei änderst Du auch das Icon in deinem Window mit.

    Gruß



  • Dynamisch ist so was kaum möglich.



  • qasdfgh schrieb:

    Dynamisch ist so was kaum möglich.

    Und genau das hätte ich gerne irgendwie gemacht 😞



  • Das ist so nicht richtig! Denn unter allen Windows-Versionen die auf dem NT-Kern aufbauen, kann man Resourcen Updaten. Hab das aber noch nie Versucht 😉

    siehe MSDN:
    BeginUpdateResource
    UpdateResource
    EndUpdateResource

    Aber das ist sicher ein steiniger Weg, und ob dir das was nützt?

    Gruß



  • Hmm... oder du gibtst deiner exe mehrere Icons mit aufm weg... sieht man bei manchen Anwendungen schonmal... dann hat man mehrere zur auswahl... das wirst de dann auch änern können...



  • (D)Evil schrieb:

    Hmm... oder du gibtst deiner exe mehrere Icons mit aufm weg... sieht man bei manchen Anwendungen schonmal... dann hat man mehrere zur auswahl... das wirst de dann auch änern können...

    Und das läuft dann ja sicher auch über

    BeginUpdateResource
    UpdateResource
    EndUpdateResource

    oder?



  • Jein, natürlich kannst Du das mit BeginUpdateResource,... versuchen. Aber die Variante mit mehreren Icon in der exe kannst Du benutzen um die Verknüpfungen in Startleiste und auf dem Desktop anzupassen. Dein Prg wird doch sicherlich keiner aus dem Verzeichnis heraus Starten. Und Du hast falls benötigt/vorhanden vür deine Dateiverknüfungen auch die Wahl der Verschiedenen Icons.

    Außerdem wo soll der Sinn liegen das Icon der Exe dynamisch zu verändern, ich sehe den Grund nicht. Das Icon soll doch eigentlich dein Prg Symbolich wiederspiegeln. Wenn sich das ständigt ändert würde mir das zB: absolut nicht gefallen. Aber das ist ja nur meine Meinung, und wiederspiegelt nicht die Vorstellung der Allgemeinheit.

    Atomfreies Wochenende
    Gruß Matthias



  • CTecS schrieb:

    Aber die Variante mit mehreren Icon in der exe kannst Du benutzen um die Verknüpfungen in Startleiste und auf dem Desktop anzupassen.

    Das würde mir natürlich reichen.
    Aber mit:

    AfxGetMainWnd()->SetIcon((HICON)LoadImage(AfxGetInstanceHandle(),"C:\\meins.ICO",IMAGE_ICON,16,16,LR_LOADFROMFILE),FALSE);
    

    Ändere ich doch dann nicht das Icon in der Programmgruppe und
    der Desktopverknüpfung? Dafür muss ich dann doch immer das Icon mit
    der jeweiligen Größe aufrufen, oder (32x32 etc)?



  • Mit AfxGet... änderst DU das Icon deines Windows/Dialogs währen der Laufzeit. Um das Icon auf dem Desktop oder in der Startleiste ändern zu können, benötigst Du natürlich das Icon in den Verschiedenen Größen in deiner exe. Um die Icon der Desktopverknüpfung oder der Start-Verknüpfung zu ändern.

    Hier findest Du bestimmt Ansätze zu ändern des Icon einer Verknüpfung(ShellLink)

    http://www.codeproject.com/shell/#General

    Gruß


Anmelden zum Antworten