Icon ändern



  • Hallo,

    ich versuche schon die ganze Zeit, eine Art Icon-Vorschau zu realisieren:

    Wenn der User per Dropdown-Feld ein Icon auswählt, soll es in einem Preview erscheinen.
    Ich habe dafür ein CPicture angelegt und dazu m_picture zugewiesen.

    In OnSelChange habe ich diesen Code:

    HICON icon;
    icon = LoadIcon(NULL, MAKEINTRESOURCE(IDI_ICONCF));
    m_picture.SetIcon(icon);
    

    Es wird problemlos kompiliert.
    Wenn ich jetzt etwas auswähle verschwindet das vorhande Icon, aber es wird kein neues Icon mehr angezeigt. Das Feld bleibt grau.

    Wenn ich nach icon = LoadIcon(...); mir per GetLastError() den letzten Fehler ausgeben lasse, steht da folgendes:

    Error 1813: Der angegebene Resoucentyp wurde nicht in der Image-Datei gefunden.

    -->> 😕 😮 😕 😞

    Wenn ich IDI_ICONCF schon beim Start über den Asistenten angebe, wird es richtig dargestellt, also das Icon ist OK.

    -->> -->> 😡 😕 😕 😕 😞

    mfg
    trequ



  • Versuch's mal so:

    HICON hIcon; 
    hIcon = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ICONCF)); 
    m_picture.SetIcon(hIcon);
    

    oder so:

    HICON hIcon; 
    hIcon = AfxGetApp()->LoadIcon(IDI_ICONCF); 
    m_picture.SetIcon(hIcon);
    

    Eines von beiden muss funktionieren !

    Gruß
    :: NoName ::



  • Hallo,

    danke für den Tipp, so funktioniert es:

    :: NoName :: schrieb:

    HICON hIcon; 
    hIcon = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ICONCF)); 
    m_picture.SetIcon(hIcon);
    

    -->> 👍 🙂

    mfg
    trequ



  • Hallo,

    soweit alles Ok, aber eine Frage hab ich jetzt doch noch:

    hIcon = LoadIcon(AfxGetInstanceHandle(), << LADE DATEI C:\Pfad\ICON.ico >> );
    

    Alles, was schon in den Resourcen vorhanden ist, geht.
    Aber wie lade ich ein Icon aus einer Datei???

    mfg
    trequ


Anmelden zum Antworten