Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Datei Icons einlesen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.06.2006, 01:33 Uhr
~Rainer
Gast


Möchte das Icon eines Files einlesen und verwenden, daß auch im Explorer angezeigt wird und habe folgendes versucht:


C++:
HICON GetFileIcon(LPCTSTR szPath)
{
    SHFILEINFO shfi = { 0 };
    HICON hIcon;
    DWORD dwResult;

    if( szPath != NULL )
    {

         dwResult = ::SHGetFileInfo( szPath, FILE_ATTRIBUTE_NORMAL, &shfi, sizeof( SHFILEINFO ), SHGFI_ICON | SHGFI_SMALLICON);
      
    }
    return shfi.hIcon;
}



Leider ist dwResult immer gleich 0 und das Icon, das angezeigt wird ist immer komplett schwarz! Das bedeutet wohl, daß die Funktion nicht erfolgreich war. Auch die Struktur shfi, welche die Rückgabewerte enthalten sollte ist nacherher genauso leer wie vorher! :confused:
Was mach' ich falsch? Kann mir vielleicht jemand helfen? Vielen Dank mal!!

P.S.: Der Pfadname ist korrekt und das File exisitert auch!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.06.2006, 15:29 Uhr
mmc20
puss in boots


hi, so hatte ich das auch mal probiert, klappt so nicht...
probier mal das, das müsste klappen:

C++:
HICON GetIcon(LPCTSTR szPath)
{
    SHFILEINFO shfi = { 0 };
    HICON temp = NULL;

    if( szPath != NULL ) {
        ASSERT( AfxIsValidString( szPath, MAX_PATH ) );

        HIMAGELIST hIml = (HIMAGELIST)::SHGetFileInfo( szPath, FILE_ATTRIBUTE_NORMAL, &shfi, sizeof( SHFILEINFO ), SHGFI_SYSICONINDEX    );

        if( hIml != NULL ) {
            temp = ::ImageList_ExtractIcon( NULL, hIml, shfi.iIcon );
            hIml = NULL;
        }
    }
    return temp;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.06.2006, 16:26 Uhr
~Rainer
Gast


Vielen Dank für die Antwort, aber das klappt auch nicht. es wird nichts zurückgeliefert!
Muß man vielleicht vorher noch irgendwas initialisieren?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.06.2006, 17:25 Uhr
~Rainer
Gast


Hab' noch einen bölden Fehler entdeckt! Jetzt geht's!! Nochmal Vielen Dank!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: