3

特定のツリー アイテムにアイコンを追加できますか?

次の関数を使用してアイコン付きのアイテムを追加しています:

HTREEITEM InsertItem(LPCTSTR lpszItem,int nImage,int nSelectedImage,HTREEITEM hParent = TVI_ROOT,HTREEITEM hInsertAfter = TVI_LAST);

アイテムのアイコンをスキップするには、 と に -1 の値を使用していnImageますnSelectedImage。こうすることで、アイコンが表示されなくなり、スペースができます。

4

1 に答える 1

0

CTreeCtrl::SetItemを見たことがありますか?

最も簡単な方法は、 TVITEM構造体を埋めて渡すことです。

typedef struct tagTVITEM {
  UINT      mask;
  HTREEITEM hItem;
  UINT      state;
  UINT      stateMask;
  LPTSTR    pszText;
  int       cchTextMax;
  int       iImage;
  int       iSelectedImage;
  int       cChildren;
  LPARAM    lParam;
} TVITEM, *LPTVITEM;

を に設定しmask、値TVIF_IMAGEを指定しiImageます。

開始するにCImageListは、CTreeCtrl. 通常は変数としてクラスに追加します。例:

m_imgList.Create(IDB_BMP_CHECK_IMAGELIST, 16, 10, 0x0000FF00);

初期化したら、CTreeCtrl::SetImageListを呼び出すことができます。例:

m_treeCtrl.SetImageList(&m_imgList, LVSIL_SMALL);

その後、イメージのインデックス値を使用できます。

于 2016-12-28T18:32:56.570 に答える