-PR-
解決済み

CTreeCtrlでアイコンが変化しない

  • 困ってます
  • 質問No.973221
  • 閲覧数905
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 36% (7/19)

環境は、MSVC++6.0&MFCです。

やりたいことは、ツリーコントロールのアイコンをエクスプローラのフォルダのように、
開いたときと閉じたときとで、アイコンを変化させたいのです。

以下は、ソースです。
CTreeCtrlからMyTreeCtrlを派生しています。
テスト用に開いたときは、文字列を"開いた"、閉じたときは、"閉じた"のように変化させるようにしています。

void MyTreeCtrl::OnItemexpanded(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
if(pNMTreeView->action == TVE_EXPAND){
SetItemState(pNMTreeView->itemNew.hItem , INDEXTOSTATEIMAGEMASK(0) , TVIS_STATEIMAGEMASK);
SetItemText(pNMTreeView->itemNew.hItem , "開いた");
}else{
SetItemState(pNMTreeView->itemNew.hItem , INDEXTOSTATEIMAGEMASK(1) , TVIS_STATEIMAGEMASK);
SetItemText(pNMTreeView->itemNew.hItem , "閉じた");
}
*pResult = 0;
}

実行すると、文字は、開いたときは、"開いた"、閉じたときは、"閉じた"とちゃんと表示されますが、
アイコンが変化しません。
お分かりの方、いらっしゃいましたら、教えてください。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル8

ベストアンサー率 69% (27/39)

レスがないようなので、ご参考になれば。
MFC でやったことはありませんが、
>>アイコンが変化しません。
とあることは、非選択状態ではアイコンは表示されているのですか。
API プログラムではアイコンを変化させるには、hItem の mask に アイコンを2種類登録する指定(TVIF_IMAGE | TVIF_SELECTEDIMAGE)をして、
アイコンデータを ImageList に登録し、その番号を
hItem の iImage, iSelectedImage にセットしています。
で、notify が来たとき決める場合は iImage も iSelectedImage も -1 にしてnotify を送るようにしておき、
notify 処理で、image 番号を指定しています。
CTreeCtrl にそれぞれのメソッドがあるでしょう。
お礼コメント
miswaki777

お礼率 36% (7/19)

回答どうもありがとうございます。
実は、別の方法で解決していました。
一定時間たたないと、質問を削除できないようなので...。

次のようにすると、うまくいきました。

void MyTreeCtrl::OnItemexpanded(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください

if(pNMTreeView->action == TVE_EXPAND){
pNMTreeView->itemNew.iImage = 1;
pNMTreeView->itemNew.iSelectedImage = 1;
SetItem(&pNMTreeView->itemNew);
}else{
pNMTreeView->itemNew.iImage = 0;
pNMTreeView->itemNew.iSelectedImage = 0;
SetItem(&pNMTreeView->itemNew);
}
*pResult = 0;
}
投稿日時 - 2004-08-26 23:54:37
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-

特集


開業・独立という夢を持つ人へ向けた情報満載!

ピックアップ

-PR-
ページ先頭へ