none
Dateien in Komponente ListView anzeigen RRS feed

  • Frage

  • Ich schreibe ein Programm, das soll eine Liste mit Dateien mit den zugehörigen Icons anzeigen. Die Dateien sind gegeben, aber wie kann ich denn die Icons dazu finden?
    Freitag, 29. Dezember 2006 13:44

Alle Antworten

  • - ExtractIcon(Ex)
    bzw.
    - SHGetFileInfo mit SHGFI_ICON

    Siehe auch: http://www.codeproject.com/file/cuseshgetfileinfo.asp

    Freitag, 29. Dezember 2006 14:39
  • Funktioniert eigentlich ganz gut, doch ich weiß nicht, woher es kommt, dass die Icons nicht richtig dargestellt werden. In den transparenten Bereichen sind die Icons schwarz und sie haben offensichtlich nur 8 Bit Farbtiefe. Mein Code sieht so aus:
    //D ist der Pfad der hinzuzufügenden Datei ListViewItem^ New = listView1->Items->Add(D);
    New->Tag = NewFile;
    IntPtr PathPtr;
    SHFILEINFOW FileInfo;
    LPWSTR Path;
    PathPtr=System::Runtime::InteropServices::Marshal::StringToHGlobalUni(D);
    Path = (LPWSTR) PathPtr.ToPointer();
    SHGetFileInfoW(Path, 0, &FileInfo, sizeof(FileInfo), SHGFI_ICON);
    System::Runtime::InteropServices::Marshal::FreeHGlobal(PathPtr);
    IntPtr^ ImagHandle;
    ImagHandle = gcnew IntPtr(CopyIcon(FileInfo.hIcon));
    this->imageListBig->Images->Add(System::Drawing::Icon::FromHandle(*ImagHandle));
    New->ImageIndex = this->imageListBig->Images->Count-1;

    Danke schon im Voraus, JCoofel
    Samstag, 6. Januar 2007 14:58