CTreeViewを使ってエクスプローラ風のツリービューを作成しましたが
空フォルダだけフォルダの色を変えたい(つまりはアイコンを差し替える?)のですが
どのようにしたら良いのか教えてください
現在、アイコンのイメージを取得している部分は以下です
LPITEMIDLIST lpItemIDXXX;
SHGetSpecialFolderLocation(m_hWnd, CSIDL_DESKTOP, &lpItemIDXXX);
SHFILEINFO sfi;
ZeroMemory(&sfi, sizeof(SHFILEINFO));
HIMAGELIST hSysImageXXX = (HIMAGELIST) SHGetFileInfo((LPCTSTR)lpItemIDXXX,
0, &sfi, sizeof(SHFILEINFO), SHGFI_PIDL | SHGFI_SYSICONINDEX |
SHGFI_SMALLICON);
CImageList *image = GetTreeCtrl().SetImageList( CImageList::FromHandle
(hSysImageXXX), TVSIL_NORMAL);
WinXP VS2010 MFC使用
CTreeCtrlを使ったプログラミング方法を調べれば
出てきそうな気がしますけれど、基本的にコントロールに
設定されたイメージリストの何番目のイメージを使うという
形で使用するアイコンを設定しますから、
まず、イメージリストに使用したいイメージが登録されている
事が前提になります。イメージリスト上に使用するイメージが既に
登録されているなら指定するアイコンのインデックス値でコントロールが
可能なはずです。イメージが登録されていないのであれば、
イメージを追加で登録する必要があると思います。
まずはCTreeCtrlを使ってプログラミングするときの方法について
一通り調べてみる事をお勧めします。
PATIOさん
ありがとうございました。
考え方は良かったみたいで、後押ししていただいたのでそのまま続けてみます
感謝です。
>まずはCTreeCtrlを使ってプログラミングするときの方法について
>一通り調べてみる事をお勧めします。
まずはこちらを調べてみます。
着手時期が遅れることになったため、追記まで時間がかかりますが、
出来上がりましたらお伝えします。