TreeViewにイメージが表示されません – プログラミング – Home

TreeViewにイメージが表示されま...
 
通知
すべてクリア

[解決済] TreeViewにイメージが表示されません


Yosi
 Yosi
(@Yosi)
ゲスト
結合: 24年前
投稿: 6
Topic starter  

はじめて投稿させていただきます。
よろしくお願いします。
作成しているスタイルはSDIでアプリケーションウィザードの最後の項目で
Windowsエクスプローラスタイルを選択して作っています。
左側のTreeViewにフォルダのイメージを表示させようと思い、こちらの掲示板の
過去ログを見させてもらったところ、分かりやすいサンプルが書いてあったのですが、
なぜが、イメージは問題なく取得できたと思うんですが実際実行してみると
イメージが表示されず、表示されるはずのスペースが開いたままになっています。

void CLeftView::OnInitialUpdate()
{
CTreeView::OnInitialUpdate();

// TODO: GetTreeCtrl() メンバ関数の呼び出しを通して直接そのリスト コ
ントロールに
// アクセスすることによって TreeView をアイテムで固定できます。

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

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

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

tree.SetImageList( &m_image, TVSIL_NORMAL);

HTREEITEM root = tree.InsertItem(TEST, m_nCloseIndex, m_nOpenIndex);
}
このようにした所、うまくいきません。
VC++でのプログライングは始めたばかりなので、サンプルを参考にいろいろやっていま
す。
原因がよく分からないのでよろしくお願いします。


引用未解決
トピックタグ
不良PG
 不良PG
(@不良PG)
ゲスト
結合: 24年前
投稿: 80
 

イメージリストのオブジェクトがローカル変数なので、
関数から抜けた時に消えてしまうからです。

>CImageList m_image;
ここで作る代わりに

class CLeftView : public C*TreeView
{
:
CImageList m_image; //ここで
:
};


返信引用
Yosi
 Yosi
(@Yosi)
ゲスト
結合: 24年前
投稿: 6
Topic starter  

不良PGさんありがとうございます。
その通りでした。
すいません、こんな簡単なことに気づかなくて。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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