Q&A

  • SHGetFileInfo로 폴더아이콘 가져고 오기

게시판에 질문은 많은것 같은데
답변이 없습니다.

SHGetFileInfo 이거로 말이져 리스트뷰에다가 연결아이콘을 구성할때

파일의 확장자별 연결아이콘은 처리했는데 그
노란색의 폴더용 아이콘 있자나요.

그건 어떻게 구하는지요?

뭐냐 c:\windows 이렇게 줘 봤더니 그 디렉토리를 표시하는 노랑 아이콘이 안나오네요.  
1  COMMENTS
  • Profile
    최용일 2004.06.29 01:56
    안녕하세요. 최용일입니다.

    아래와 같이 해보세요...

    var
      Flags: UINT;
      FileInfo: TSHFileInfo;
      Item: TListItem;
      PIDL: PItemIDList;
    begin
      ListView.Items.Clear;

      SHGetSpecialFolderLocation(0, CSIDL_DESKTOPDIRECTORY, PIDL);

      Flags := SHGFI_PIDL or SHGFI_SYSICONINDEX;
      SHGetFileInfo(PChar(PIDL), 0, FileInfo, SizeOf(FileInfo), Flags);
      Item := ListView.Items.Add;
      Item.Caption := 'Closed Folder';
      Item.ImageIndex := FileInfo.iIcon;

      Flags := SHGFI_PIDL or SHGFI_SYSICONINDEX or SHGFI_OPENICON;
      SHGetFileInfo(PChar(PIDL), 0, FileInfo, SizeOf(FileInfo), Flags);
      Item := ListView.Items.Add;
      Item.Caption := 'Opened Folder';
      Item.ImageIndex := FileInfo.iIcon;
    end;

    ^^ 항상 즐코하세요...