2016-07-27 15 views
0

CTreeCtrlを使用しているシステム内のすべてのドライブのフォルダ構造を表示するツリーコントロールを作成しようとしています。 TreectrlにFolderイメージを追加してテストするために次のコードを使用しましたが、イメージが表示されないことに驚いています。ツリーコントロールに関連付けられたイメージが表示されない

CImageList m_ImageList;  
CBitmap m_Bitmap1; 
m_ImageList.Create(16, 16, ILC_COLOR, 0, 1);  
m_Bitmap1.LoadBitmap(IDB_BITMAP1); 
m_ImageList.Add(&m_Bitmap1, (COLORREF)0xFFFFFF);   
m_cTreeCtrl.SetImageList(&m_ImageList, TVSIL_NORMAL); 
HTREEITEM hTree = m_cTreeCtrl.InsertItem(L"C Drive", 0, 0, TVI_ROOT); 
HTREEITEM hCompany = m_cTreeCtrl.InsertItem(L"Program Files", 0, 0, hTree);  
m_cTreeCtrl.SetItemImage(hTree , 1, 1); 

私のビットマップIDは、IDB_BITMAP1は、そのフォルダのビットマップです。
イメージの代わりにテキストの横に空白が表示されます。

私を修正してください。ありがとう

+2

イメージリストへのインデックスはゼロベースです。イメージリストにインデックス '0'のイメージが1つだけあっても、SetItemImageにインデックスとして '1'を渡しています。 – IInspectable

+1

はい、@llnspectableに同意します。また、m_ImageListがクラスのメンバーであり、ローカル変数でないことを確認してください。 –

答えて

-1

私はGDI sdk(win32)で画像を扱いながら同じ問題に直面しました。これを解決するには: -

  1. bmp画像のサイズを確認してください。これはフレームよりも大きくはサポートされません。
  2. 私は直接APISで修正しました。 "LoadImage(...)/ SetImage(...)"のように SDKにあります。

希望します。

+1

[ツアー]に行って[回答]を読んでください。答えはOPからのフィードバックを必要とすべきではありません。 – IInspectable

+0

https://www.linkedin.com/pulse/resizable-controls-mfc-pankaj-kumar – pankaj

+0

https://www.linkedin.com/pulse/resizable-controls-mfc-pankaj-kumar Pankaj – pankaj

関連する問題