ツリービューにフォルダの開いたとき閉じたときのアイコン設定 – プログラミング – Home

ツリービューにフォルダの開いたとき閉じ...
 
通知
すべてクリア

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


Jun
 Jun
(@Jun)
ゲスト
結合: 23年前
投稿: 12
Topic starter  

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


引用未解決
トピックタグ
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

それって取得するのではなく、自分で設定するものなのではないのですか、アイコンリ
ソースを切り替えて?


返信引用
sugar
 sugar
(@sugar)
ゲスト
結合: 23年前
投稿: 448
 

システムが保持しているイメージを利用することができます。

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
 Jun
(@Jun)
ゲスト
結合: 23年前
投稿: 12
Topic starter  

サンプルまで書いていただいたおかげでとても助かりました。
教えてもらったとおりにやってみたところ無事解決しました。
ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました