ツリービューにフォルダの開いたとき閉じたときのアイコン設定

[戻る]
Jun 2002/02/14(木) 02:51:38
ツリービューにエクスプローラーで使われているような
フォルダが閉じているときのアイコン、
フォルダを開いたときのアイコンを取得したいのですけど
どのような関数を使えば、この2つのアイコンを取得できますか?
分かる方がいらしたら、よろしくお願いします。

wood 2002/02/14(木) 07:15:52
それって取得するのではなく、自分で設定するものなのではないのですか、アイコンリ
ソースを切り替えて?

sugar 2002/02/14(木) 11:09:34
システムが保持しているイメージを利用することができます。

1. システムイメージリストを取得します。

CImageList m_image;
SHFILEINFO sfi;
HIMAGELIST hSystemImageList = (HIMAGELIST)SHGetFileInfo(
                                   _T("C:\\"), 0, &sfi, 
                                   sizeof(SHFILEINFO),
                                   SHGFI_SYSICONINDEX | SHGFI_ICON);
m_image.Attach(hSystemImageList);


2. フォルダに割り当てられたアイコン(開/閉)のインデックスを取得します。
m_nCloseIndex、m_nOpenIndexにはシステムイメージリストにおけるインデックスが返りま
す。

// フォルダアイコン(クローズ)
SHGetFileInfo("C:\\WINDOWS", 0, &sfi, sizeof(SHFILEINFO), 
                 SHGFI_SYSICONINDEX | SHGFI_ICON);
int m_nCloseIndex = sfi.iIcon;
    
// フォルダアイコン(オープン)
SHGetFileInfo("C:\\WINDOWS", 0, &sfi, sizeof(SHFILEINFO), 
                 SHGFI_SYSICONINDEX | SHGFI_ICON | SHGFI_OPENICON);
int m_nOpenIndex = sfi.iIcon;


イメージリストとインデックスが取得できれば、
後は好きなようにできると思います。

Jun 2002/02/14(木) 18:35:54
[[解決]]
サンプルまで書いていただいたおかげでとても助かりました。
教えてもらったとおりにやってみたところ無事解決しました。
ありがとうございました。

古いスレッドには追加発言できません。