CTreeCtrl クラス

Windows コモン ツリー ビュー コントロールの機能が用意されています。

構文

class CTreeCtrl : public CWnd

メンバー

パブリック コンストラクター

名前 説明
CTreeCtrl::CTreeCtrl CTreeCtrl オブジェクトを構築します。

パブリック メソッド

名前 説明
CTreeCtrl::Create ツリー ビュー コントロールを作成し、 CTreeCtrl オブジェクトにアタッチします。
CTreeCtrl::CreateDragImage 指定したツリー ビュー項目のドラッグ ビットマップを作成します。
CTreeCtrl::CreateEx 指定した Windows 拡張スタイルを使用してツリー コントロールを作成し、 CTreeCtrl オブジェクトにアタッチします。
CTreeCtrl::DeleteAllItems ツリー ビュー コントロール内のすべての項目を削除します。
CTreeCtrl::DeleteItem ツリー ビュー コントロール内の新しい項目を削除します。
CTreeCtrl::EditLabel 指定したツリー ビュー項目をインプレースで編集します。
CTreeCtrl::EndEditLabelNow 現在のツリー ビュー コントロールのツリー ビュー項目のラベルに対する編集操作を取り消します。
CTreeCtrl::EnsureVisible ツリー ビュー項目がツリー ビュー コントロールに確実に表示されるようにします。
CTreeCtrl::Expand 指定したツリー ビュー項目の子項目を展開または折りたたみます。
CTreeCtrl::GetBkColor コントロールの現在の背景色を取得します。
CTreeCtrl::GetCheck ツリー コントロール項目のチェック状態を取得します。
CTreeCtrl::GetChildItem 指定したツリー ビュー項目の子を取得します。
CTreeCtrl::GetCount ツリー ビュー コントロールに関連付けられているツリー項目の数を取得します。
CTreeCtrl::GetDropHilightItem ドラッグ アンド ドロップ操作のターゲットを取得します。
CTreeCtrl::GetEditControl 指定したツリー ビュー項目の編集に使用する編集コントロールのハンドルを取得します。
CTreeCtrl::GetExtendedStyle 現在のツリー ビュー コントロールが使用している拡張スタイルを取得します。
CTreeCtrl::GetFirstVisibleItem 指定したツリー ビュー項目の最初に表示される項目を取得します。
CTreeCtrl::GetImageList ツリー ビュー コントロールに関連付けられているイメージ リストのハンドルを取得します。
CTreeCtrl::GetIndent ツリー ビュー項目のオフセット (ピクセル単位) を親から取得します。
CTreeCtrl::GetInsertMarkColor ツリービューの挿入マークの描画に使用する色を取得します。
CTreeCtrl::GetItem 指定したツリー ビュー項目の属性を取得します。
CTreeCtrl::GetItemData 項目に関連付けられているアプリケーション固有の値を返します。
CTreeCtrl::GetItemExpandedImageIndex 現在のツリー ビュー コントロールの指定した項目が展開状態のときに表示するイメージのインデックスを取得します。
CTreeCtrl::GetItemHeight ツリー ビュー項目の現在の高さを取得します。
CTreeCtrl::GetItemImage アイテムに関連付けられているイメージを取得します。
CTreeCtrl::GetItemPartRect 現在のツリー ビュー コントロール内の指定した項目の指定した部分の外接する四角形を取得します。
CTreeCtrl::GetItemRect ツリー ビュー項目の外接する四角形を取得します。
CTreeCtrl::GetItemState 項目の状態を返します。
CTreeCtrl::GetItemStateEx 現在のツリー ビュー コントロール内の指定した項目の拡張状態を取得します。
CTreeCtrl::GetItemText 項目のテキストを返します。
CTreeCtrl::GetLastVisibleItem 現在のツリー ビュー コントロールの最後に展開された項目を取得します。
CTreeCtrl::GetLineColor ツリー ビュー コントロールの現在の線の色を取得します。
CTreeCtrl::GetNextItem 指定したリレーションシップに一致する次のツリー ビュー項目を取得します。
CTreeCtrl::GetNextSiblingItem 指定したツリー ビュー項目の次の兄弟を取得します。
CTreeCtrl::GetNextVisibleItem 指定したツリー ビュー項目の次に表示される項目を取得します。
CTreeCtrl::GetParentItem 指定したツリー ビュー項目の親を取得します。
CTreeCtrl::GetPrevSiblingItem 指定したツリー ビュー項目の前の兄弟を取得します。
CTreeCtrl::GetPrevVisibleItem 指定したツリー ビュー項目の前に表示されている項目を取得します。
CTreeCtrl::GetRootItem 指定したツリー ビュー項目のルートを取得します。
CTreeCtrl::GetScrollTime ツリー ビュー コントロールの最大スクロール時間を取得します。
CTreeCtrl::GetSelectedCount 現在のツリー ビュー コントロールで選択されている項目の数を取得します。
CTreeCtrl::GetSelectedItem 現在選択されているツリー ビュー項目を取得します。
CTreeCtrl::GetTextColor コントロールの現在のテキスト色を取得します。
CTreeCtrl::GetToolTips ツリー ビュー コントロールによって使用される子 ToolTip コントロールへのハンドルを取得します。
CTreeCtrl::GetVisibleCount ツリー ビュー コントロールに関連付けられている表示されるツリー項目の数を取得します。
CTreeCtrl::HitTest CTreeCtrl オブジェクトに関連するカーソルの現在位置を返します。
CTreeCtrl::InsertItem ツリー ビュー コントロールに新しい項目を挿入します。
CTreeCtrl::ItemHasChildren 指定した項目に子項目がある場合は、0 以外の値を返します。
CTreeCtrl::MapAccIdToItem 指定したアクセシビリティ識別子を、現在のツリー ビュー コントロールのツリー ビュー項目にハンドルにマップします。
CTreeCtrl::MapItemToAccID 指定したハンドルを、現在のツリー ビュー コントロールのツリー ビュー項目にアクセシビリティ識別子にマップします。
CTreeCtrl::Select 指定したツリー ビュー項目を選択、スクロールして表示、または再描画します。
CTreeCtrl::SelectDropTarget ドラッグ アンド ドロップ操作のターゲットとしてツリー項目を再描画します。
CTreeCtrl::SelectItem 指定したツリー ビュー項目を選択します。
CTreeCtrl::SelectSetFirstVisible 指定したツリー ビュー項目を最初に表示される項目として選択します。
CTreeCtrl::SetAutoscrollInfo 現在のツリー ビュー コントロールの自動スクロール速度を設定します。
CTreeCtrl::SetBkColor コントロールの背景色を設定します。
CTreeCtrl::SetCheck ツリー コントロール項目のチェック状態を設定します。
CTreeCtrl::SetExtendedStyle 現在のツリー ビュー コントロールの拡張スタイルを設定します。
CTreeCtrl::SetImageList ツリー ビュー コントロールに関連付けられているイメージ リストのハンドルを設定します。
CTreeCtrl::SetIndent ツリー ビュー項目の親からのオフセット (ピクセル単位) を設定します。
CTreeCtrl::SetInsertMark ツリー ビュー コントロールの挿入マークを設定します。
CTreeCtrl::SetInsertMarkColor ツリービューの挿入マークの描画に使用する色を設定します。
CTreeCtrl::SetItem 指定したツリー ビュー 項目の属性を設定します。
CTreeCtrl::SetItemData 項目に関連付けられているアプリケーション固有の値を設定します。
CTreeCtrl::SetItemExpandedImageIndex 現在のツリー ビュー コントロールの指定した項目が展開状態のときに表示するイメージのインデックスを設定します。
CTreeCtrl::SetItemHeight ツリー ビュー項目の高さを設定します。
CTreeCtrl::SetItemImage 画像をアイテムに関連付けます。
CTreeCtrl::SetItemState 項目の状態を設定します。
CTreeCtrl::SetItemStateEx 現在のツリー ビュー コントロールの指定した項目の拡張状態を設定します。
CTreeCtrl::SetItemText アイテムのテキストを設定します。
CTreeCtrl::SetLineColor ツリー ビュー コントロールの現在の線の色を設定します。
CTreeCtrl::SetScrollTime ツリー ビュー コントロールの最大スクロール時間を設定します。
CTreeCtrl::SetTextColor コントロールのテキスト色を設定します。
CTreeCtrl::SetToolTips ツリー ビュー コントロールの子 ToolTip コントロールを設定します。
CTreeCtrl::ShowInfoTip 現在のツリー ビュー コントロールの指定した項目のヒントを表示します。
CTreeCtrl::SortChildren 特定の親アイテムの子を並べ替えます。
CTreeCtrl::SortChildrenCB アプリケーション定義の並べ替え関数を使用して、特定の親項目の子を並べ替えます。

解説

"ツリー ビュー コントロール" は、ドキュメント内の見出し、インデックス内のエントリ、ディスク上のファイルとディレクトリなどの項目の階層リストを表示するウィンドウです。 各項目は、ラベルとオプションのビットマップ イメージで構成され、関連付けられているサブ項目の一覧を含むことができます。 ユーザーは、項目をクリックすることにより、関連付けられているサブ項目の一覧の展開と折りたたみを行うことができます。

このコントロール (したがって、 CTreeCtrl クラス) は、Windows 98 および Windows NT バージョン 4 以降で実行されているプログラムでのみ使用できます。

CTreeCtrlの使用方法の詳細については、以下を参照してください。

継承階層

CObject

CCmdTarget

CWnd

CTreeCtrl

要件

ヘッダー: afxcmn.h

CTreeCtrl::Create

ダイアログ ボックス テンプレートでツリー コントロールを指定した場合、または CTreeViewを使用している場合は、ダイアログ ボックスまたはビューの作成時にツリー コントロールが自動的に作成されます。

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

パラメーター

dwStyle
ツリー ビュー コントロールのスタイルを指定します。 Windows SDK で説明されているように、 CreateWindowで説明されているウィンドウ スタイルと、 ツリー ビュー コントロール スタイルの任意の組み合わせ 適用します。

rect
ツリー ビュー コントロールのサイズと位置を指定します。 CRect オブジェクトまたはRECT構造体のいずれかを指定できます。

pParentWnd
ツリー ビュー コントロールの親ウィンドウ (通常は CDialog) を指定します。 NULLすることはできません。

nID
ツリー ビュー コントロールの ID を指定します。

戻り値

初期化が成功した場合は 0 以外。それ以外の場合は 0。

解説

ツリー コントロールを他のウィンドウの子ウィンドウとして作成する場合は、 Create メンバー関数を使用します。 Createを使用してツリー コントロールを作成する場合は、他のツリー ビュー スタイルに加えて、WS_VISIBLE渡す必要があります。

2 つの手順で CTreeCtrl を構築します。 最初にコンストラクターを呼び出し、次に Create を呼び出します。これにより、ツリー ビュー コントロールが作成され、 CTreeCtrl オブジェクトにアタッチされます。

拡張ウィンドウ スタイルを持つツリー コントロールを作成するには、Createの代わりにCreateExを呼び出します。

// Assuming your window has a CTreeCtrl member named m_TreeCtrl,
// you can create the tree control window with a child ID of ID_MYTREE
// using a call like this:

m_TreeCtrl.Create(WS_VISIBLE | WS_TABSTOP | WS_CHILD | WS_BORDER |
                      TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES |
                      TVS_DISABLEDRAGDROP | TVS_NOTOOLTIPS | TVS_EDITLABELS,
                  CRect(10, 10, 300, 100), this, ID_MYTREE);

// The control will have the appropriate window styles, and the tree
// control styles specified are those most commonly used.

CTreeCtrl::CreateEx

この関数を呼び出してコントロール (子ウィンドウ) を作成し、 CTreeCtrl オブジェクトに関連付けます。

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

パラメーター

dwExStyle
作成するコントロールの拡張スタイルを指定します。 拡張 Windows スタイルの一覧については、Windows SDK のCreateWindowExdwExStyle パラメーターを参照してください。

dwStyle
ツリー ビュー コントロールのスタイルを指定します。 Windows SDK で説明されているように、 CreateWindowで説明されているウィンドウ スタイルと、 ツリー ビュー コントロール スタイルの任意の組み合わせ 適用します。

rect
pParentWndのクライアント座標で、作成するウィンドウのサイズと位置を記述するRECT構造体への参照。

pParentWnd
コントロールの親であるウィンドウへのポインター。

nID
コントロールの子ウィンドウ ID。

戻り値

成功した場合は 0 以外の場合は 0。

解説

CreateではなくCreateExを使用して、Windows 拡張スタイルの前置WS_EX_で指定された拡張 Windows スタイルを適用します。

CTreeCtrl::CreateDragImage

この関数を呼び出して、ツリー ビュー コントロール内の特定の項目のドラッグ ビットマップを作成し、ビットマップのイメージ リストを作成して、ビットマップをイメージ リストに追加します。

CImageList* CreateDragImage(HTREEITEM hItem);

パラメーター

hItem
ドラッグするツリー項目のハンドル。

戻り値

ドラッグ ビットマップが追加されたイメージ リストへのポインター (成功した場合)。それ以外の場合は NULL

解説

アプリケーションは、イメージ リスト関数を使用して、項目がドラッグされるときにイメージを表示します。

CImageList オブジェクトは永続的であり、完了したら削除する必要があります。 次に例を示します。

HTREEITEM hItem = m_TreeCtrl.GetSelectedItem();

CImageList *pImageList = m_TreeCtrl.CreateDragImage(hItem);

// Do something with the image list.

delete pImageList;

CTreeCtrl::CTreeCtrl

CTreeCtrl オブジェクトを構築します。

CTreeCtrl();

CTreeCtrl::DeleteAllItems

ツリー ビュー コントロールからすべての項目を削除するには、この関数を呼び出します。

BOOL DeleteAllItems();

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

// The underlying Windows API always returns TRUE
VERIFY(m_TreeCtrl.DeleteAllItems());

CTreeCtrl::DeleteItem

ツリー ビュー コントロールから項目を削除するには、この関数を呼び出します。

BOOL DeleteItem(HTREEITEM hItem);

パラメーター

hItem
削除するツリー項目のハンドル。 hitemTVI_ROOT値がある場合、すべての項目がツリー ビュー コントロールから削除されます。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

// Look at all of the root-level items
HTREEITEM hCurrent = m_TreeCtrl.GetChildItem(TVI_ROOT);
while (hCurrent != NULL)
{
   // Get the text for the item. Notice we use TVIF_TEXT because
   // we want to retrieve only the text, but also specify TVIF_HANDLE
   // because we're getting the item by its handle.
   TVITEM item;
   TCHAR szText[1024];
   item.hItem = hCurrent;
   item.mask = TVIF_TEXT | TVIF_HANDLE;
   item.pszText = szText;
   item.cchTextMax = 1024;

   BOOL bWorked = m_TreeCtrl.GetItem(&item);

   // Try to get the next item
   hCurrent = m_TreeCtrl.GetNextItem(hCurrent, TVGN_NEXT);

   // If we successfuly retrieved an item, and the item's text
   // contains a lowercase letter 'e', delete the item.
   if (bWorked && _tcschr(item.pszText, 'e'))
      m_TreeCtrl.DeleteItem(item.hItem);
}

CTreeCtrl::EditLabel

指定したアイテムのテキストのインプレース編集を開始するには、この関数を呼び出します。

CEdit* EditLabel(HTREEITEM hItem);

パラメーター

hItem
編集するツリー項目のハンドル。

戻り値

成功した場合は、アイテムテキストの編集に使用される CEdit オブジェクトへのポインター。それ以外の場合は NULL

解説

編集は、アイテムのテキストをテキストを含む 1 行の編集コントロールに置き換えることによって実現されます。

// Make sure the focus is set to the tree control.
m_TreeCtrl.SetFocus();

// Show the edit control on the label of the selected item.
// The tree control must have the TVS_EDITLABELS style set.
HTREEITEM hSel = m_TreeCtrl.GetSelectedItem();
CEdit *pmyEdit = m_TreeCtrl.EditLabel(hSel);
ASSERT(pmyEdit != NULL);

CTreeCtrl::EndEditLabelNow

現在のツリー ビュー コントロールのツリー ビュー 項目のラベルに対する編集操作を終了します。

BOOL EndEditLabelNow(BOOL fCancelWithoutSave);

パラメーター

fCancelWithoutSave
[入力] TRUE 編集操作を終了する前にツリー ビュー項目に対する変更を破棄する場合、または操作を終了する前にツリー ビュー項目に変更を保存する FALSE

戻り値

TRUE このメソッドが成功した場合。それ以外の場合は FALSE

解説

このメソッドは、Windows SDK で説明されている TVM_ENDEDITLABELNOW メッセージを送信します。

CTreeCtrl::EnsureVisible

ツリー ビュー項目が表示されるようにするには、この関数を呼び出します。

BOOL EnsureVisible(HTREEITEM hItem);

パラメーター

hItem
表示されるツリー項目のハンドル。

戻り値

システムがツリー ビュー コントロール内の項目をスクロールして、指定した項目が確実に表示されるようにした場合に TRUE を返します。 それ以外の場合、戻り値は FALSE

解説

必要に応じて、この関数は親項目を展開するか、ツリー ビュー コントロールをスクロールして項目が表示されるようにします。

HTREEITEM hItem = m_TreeCtrl.GetSelectedItem();
// hmyItem is the item that I want to ensure is visible.
HTREEITEM hmyItem = m_TreeCtrl.GetChildItem(hItem);

// Expand the parent, if possible.
HTREEITEM hParent = m_TreeCtrl.GetParentItem(hmyItem);
if (hParent != NULL)
   m_TreeCtrl.Expand(hParent, TVE_EXPAND);

// Ensure the item is visible.
m_TreeCtrl.EnsureVisible(hmyItem);

CTreeCtrl::Expand

この関数を呼び出して、指定された親アイテムに関連付けられている子項目の一覧 (存在する場合) を展開または折りたたみします。

BOOL Expand(
    HTREEITEM hItem,
    UINT nCode);

パラメーター

hItem
展開されているツリー項目のハンドル。

nCode
実行するアクションの種類を示すフラグ。 このフラグには、次のいずれかの値を指定できます。

  • TVE_COLLAPSE リストを折りたたむ。

  • TVE_COLLAPSERESET リストを折りたたみ、子項目を削除します。 TVIS_EXPANDEDONCE状態フラグがリセットされます。 このフラグは、 TVE_COLLAPSE フラグと共に使用する必要があります。

  • TVE_EXPAND リストを展開します。

  • TVE_TOGGLE 現在展開されている場合はリストを折りたたみ、現在折りたたまれている場合は展開します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

CTreeCtrl::EnsureVisible の例を参照してください。

CTreeCtrl::GetBkColor

このメンバー関数では、Windows SDK で説明されているように、Win32 メッセージ TVM_GETBKCOLOR の動作が実装されます。

COLORREF GetBkColor() const;

戻り値

コントロールの現在のウィンドウの背景色を表す COLORREF 値。 この値が -1 の場合、コントロールはシステム ウィンドウの色を使用します。 この場合は、 ::GetSysColor(COLOR_WINDOW) を使用して、コントロールが使用している現在のシステム色を取得できます。

CTreeCtrl::SetTextColor の例を参照してください。

CTreeCtrl::GetCheck

このメンバー関数を呼び出して、項目のチェック状態を取得します。

BOOL GetCheck(HTREEITEM hItem) const;

パラメーター

hItem
状態情報を受け取る HTREEITEM

戻り値

ツリー コントロール項目がチェックされている場合は 0 以外。それ以外の場合は 0。

CTreeCtrl::SetCheck の例を参照してください。

CTreeCtrl::GetChildItem

この関数を呼び出して、 hItemで指定された項目の子であるツリー ビュー項目を取得します。

HTREEITEM GetChildItem(HTREEITEM hItem) const;

パラメーター

hItem
ツリー項目のハンドル。

戻り値

成功した場合の子項目のハンドル。それ以外の場合は NULL

HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();

// Delete all of the children of hmyItem.
if (m_TreeCtrl.ItemHasChildren(hmyItem))
{
   HTREEITEM hNextItem;
   HTREEITEM hChildItem = m_TreeCtrl.GetChildItem(hmyItem);

   while (hChildItem != NULL)
   {
      hNextItem = m_TreeCtrl.GetNextItem(hChildItem, TVGN_NEXT);
      m_TreeCtrl.DeleteItem(hChildItem);
      hChildItem = hNextItem;
   }
}

CTreeCtrl::GetCount

ツリー ビュー コントロール内の項目の数を取得するには、この関数を呼び出します。

UINT GetCount() const;

戻り値

ツリー ビュー コントロール内の項目の数。

// Delete all of the items from the tree control.
m_TreeCtrl.DeleteAllItems();
ASSERT(m_TreeCtrl.GetCount() == 0);

CTreeCtrl::GetDropHilightItem

ドラッグ アンド ドロップ操作のターゲットである項目を取得するには、この関数を呼び出します。

HTREEITEM GetDropHilightItem() const;

戻り値

成功した場合に削除された項目のハンドル。それ以外の場合は NULL

// Set the item at the point myPoint as the drop target.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);

if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
   m_TreeCtrl.SelectDropTarget(hItem);
   ASSERT(m_TreeCtrl.GetDropHilightItem() == hItem);
}

CTreeCtrl::GetEditControl

ツリー ビュー項目のテキストの編集に使用されている編集コントロールのハンドルを取得するには、この関数を呼び出します。

CEdit* GetEditControl() const;

戻り値

項目テキストの編集に使用するエディット コントロールへのポインター (成功した場合)。それ以外の場合は NULL

// The string replacing the text in the edit control.
LPCTSTR lpszmyString = _T("New text!");

// Replace the text in the label edit control, if possible.
CEdit *pEdit = m_TreeCtrl.GetEditControl();

if (pEdit != NULL)
{
   pEdit->SetWindowText(lpszmyString);
}

CTreeCtrl::GetExtendedStyle

現在のツリー ビュー コントロールが使用している拡張スタイルを取得します。

DWORD GetExtendedStyle() const;

戻り値

現在のツリー ビュー コントロールの拡張スタイルのビットごとの組み合わせ (OR) を含む値。 詳細については、「 ツリー ビュー コントロールの拡張スタイルを参照してください。

解説

このメソッドは、Windows SDK で説明されている TVM_GETEXTENDEDSTYLE メッセージを送信します。

CTreeCtrl::GetFirstVisibleItem

ツリー ビュー コントロールの最初に表示される項目を取得するには、この関数を呼び出します。

HTREEITEM GetFirstVisibleItem() const;

戻り値

最初に表示される項目のハンドル。それ以外の場合は NULL

CTreeCtrl::SetCheck の例を参照してください。

CTreeCtrl::GetImageList

この関数を呼び出して、ツリー ビュー コントロールに関連付けられている通常または状態のイメージ リストのハンドルを取得します。

CImageList* GetImageList(UINT nImageList) const;

パラメーター

nImageList
取得するイメージ リストの種類。 画像の一覧には、次のいずれかの値を指定できます。

  • TVSIL_NORMAL ツリー ビュー項目の選択したイメージと選択されていないイメージを含む、通常のイメージ リストを取得します。

  • TVSIL_STATE 状態イメージ リストを取得します。このリストには、ユーザー定義の状態にあるツリー ビュー項目のイメージが含まれます。

戻り値

成功した場合は、コントロールのイメージ リストへのポインター。それ以外の場合は NULL

解説

ツリー ビュー コントロールの各項目には、ビットマップイメージのペアを関連付けることができます。 項目が選択されると 1 つのイメージが表示され、項目が選択されていないときにもう一方のイメージが表示されます。 たとえば、項目を選択したときに開いているフォルダーを表示し、選択されていない場合は閉じたフォルダーを表示することができます。

画像リストの詳細については、 CImageList クラスを参照してください。

ASSERT(m_TreeCtrl.GetImageList(TVSIL_NORMAL) == NULL);

m_TreeCtrl.SetImageList(&m_TreeImages, TVSIL_NORMAL);
ASSERT(m_TreeCtrl.GetImageList(TVSIL_NORMAL) == &m_TreeImages);

CTreeCtrl::GetIndent

この関数を呼び出して、子項目が親項目に対してインデントされる量をピクセル単位で取得します。

UINT GetIndent() const;

戻り値

ピクセル単位で測定されたインデントの量。

// Double the indent.
UINT uIndent = m_TreeCtrl.GetIndent();
m_TreeCtrl.SetIndent(2 * uIndent);

CTreeCtrl::GetInsertMarkColor

このメンバー関数では、Windows SDK で説明されているように、Win32 メッセージ TVM_GETINSERTMARKCOLOR の動作が実装されます。

COLORREF GetInsertMarkColor() const;

戻り値

現在の挿入マークの色を含む COLORREF 値。

// Use the highliight color for the insert mark color.
COLORREF crColor = ::GetSysColor(COLOR_HIGHLIGHT);
m_TreeCtrl.SetInsertMarkColor(crColor);
ASSERT(m_TreeCtrl.GetInsertMarkColor() == crColor);

CTreeCtrl::GetItem

この関数を呼び出して、指定したツリー ビュー項目の属性を取得します。

BOOL GetItem(TVITEM* pItem) const;

パラメーター

pItem
Windows SDK で説明されているように、 TVITEM 構造体へのポインター。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

CTreeCtrl::DeleteItem の例を参照してください。

CTreeCtrl::GetItemData

この関数を呼び出して、指定した項目に関連付けられているアプリケーション固有の値を取得します。

DWORD_PTR GetItemData(HTREEITEM hItem) const;

パラメーター

hItem
データを取得するアイテムのハンドル。

戻り値

hItemによって指定された項目に関連付けられたポインター サイズのアプリケーション固有の値。

HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();

// Delete all of the children of hmyItem whose item data is
// not equal to zero.
if (m_TreeCtrl.ItemHasChildren(hmyItem))
{
   HTREEITEM hNextItem;
   HTREEITEM hChildItem = m_TreeCtrl.GetChildItem(hmyItem);

   while (hChildItem != NULL)
   {
      hNextItem = m_TreeCtrl.GetNextItem(hChildItem, TVGN_NEXT);

      if (m_TreeCtrl.GetItemData(hChildItem) != 0)
      {
         m_TreeCtrl.DeleteItem(hChildItem);
      }

      hChildItem = hNextItem;
   }
}

CTreeCtrl::GetItemExpandedImageIndex

現在のツリー ビュー コントロールの指定した項目が展開状態のときに表示するイメージのインデックスを取得します。

int GetItemExpandedImageIndex(HTREEITEM hItem)const;

パラメーター

hItem
[in]ツリー ビュー コントロール項目へのハンドル。

戻り値

指定した項目が展開状態のときに表示するイメージのインデックス。

解説

このメソッドは、Windows SDK で説明されている TVM_GETITEM メッセージを送信します。 このメッセージは、ツリー ビュー コントロール項目を記述する TVITEMEX 構造体を返し、このメソッドはその構造体から iExpandedImage メンバーを取得します。

CTreeCtrl::GetItemHeight

このメンバー関数では、Windows SDK で説明されているように、Win32 メッセージ TVM_GETITEMHEIGHT の動作が実装されます。

SHORT GetItemHeight() const;

戻り値

項目の高さ (ピクセル単位)。

// Double the height of the items.
SHORT sHeight = m_TreeCtrl.GetItemHeight();
m_TreeCtrl.SetItemHeight(2 * sHeight);

CTreeCtrl::GetItemImage

ツリー ビュー コントロールの各項目には、ビットマップイメージのペアを関連付けることができます。

BOOL GetItemImage(
    HTREEITEM hItem,
    int& nImage,
    int& nSelectedImage) const;

パラメーター

hItem
イメージを取得するアイテムのハンドル。

nImage
ツリー ビュー コントロールのイメージ リスト内の項目のイメージのインデックスを受け取る整数。

nSelectedImage
ツリー ビュー コントロールのイメージ リスト内の項目の選択したイメージのインデックスを受け取る整数。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

項目のラベルの左側にイメージが表示されます。 項目が選択されると 1 つのイメージが表示され、項目が選択されていないときにもう一方のイメージが表示されます。 たとえば、項目を選択したときに開いているフォルダーを表示し、選択されていない場合は閉じたフォルダーを表示することができます。

この関数を呼び出して、ツリー ビュー コントロールのイメージ リスト内の項目のイメージとその選択したイメージのインデックスを取得します。

HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();

// If the selected image is the same as the nonselected image
// then make the selected image one more than the nonselected image.
if (m_TreeCtrl.ItemHasChildren(hmyItem))
{
   HTREEITEM hItem = m_TreeCtrl.GetChildItem(hmyItem);
   int nImage, nSelectedImage;

   while (hItem != NULL)
   {
      m_TreeCtrl.GetItemImage(hItem, nImage, nSelectedImage);

      if (nImage == nSelectedImage)
      {
         m_TreeCtrl.SetItemImage(hItem, nImage, nImage + 1);
      }

      hItem = m_TreeCtrl.GetNextSiblingItem(hItem);
   }
}

CTreeCtrl::GetItemPartRect

現在のツリー ビュー コントロール内の指定した項目の指定した部分の外接する四角形を取得します。

BOOL GetItemPartRect(
    HTREEITEM hItem,
    int nPart,
    LPRECT lpRect)const;

パラメーター

hItem
[in]ツリー ビュー コントロール項目へのハンドル。

nPart
[in]パーツの識別子。 TVGIPR_BUTTON に設定する必要があります。

lpRect
[out] RECT 構造体へのポインター。 このメソッドが成功した場合、構造体は、 hItem および nPartで指定されたパーツの四角形の座標を受け取ります。

戻り値

TRUE このメソッドが成功した場合。それ以外の場合は FALSE

解説

各ツリー コントロール項目は、グラフィックス四角形で囲まれます。 その四角形内のポイントがクリックされるたびに、項目は hitと言われます。 このメソッドは、四角形内のポイントがクリックされたときに、 hItem パラメーターで識別される項目にヒットする最大の四角形を返します。

このメソッドは、Windows SDK で説明されている TVM_GETITEMPARTRECT メッセージを送信します。 詳細については、 TreeView_GetItemPartRect マクロを参照してください。

最初のコード例では、現在のツリー ビュー コントロールにアクセスするために使用される変数 ( m_treeCtrl) を定義します。 このコード例では、符号なし整数と複数の HTREEITEM 変数も定義します。 これらの変数は、次の例で使用します。

public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;

次のコード例では、アクセシビリティ識別子と CTreeCtrl::MapAccIdToItem メソッドを使用して、ルート ツリー ビュー項目へのハンドルを取得します。 次に、ハンドルと CTreeCtrl::GetItemPartRect メソッドを使用して、その項目の周囲に 3D 四角形を描画します。 コード例の前のセクションでは、ここでは、米国のルートの国/地域ノード、ペンシルバニア州とワシントン州のサブノード、およびそれらの州の都市のツリー項目で構成されるツリー ビューを作成しました。 ルート ツリー ビュー項目をアクセシビリティ識別子に関連付けるために、 CTreeCtrl::MapItemToAccID メソッドを使用しました。

CRect rect;
HTREEITEM hUS = m_treeCtrl.MapAccIdToItem(accIdUS);
m_treeCtrl.GetItemPartRect(hUS, TVGIPR_BUTTON, &rect);
m_treeCtrl.GetDC()->Draw3dRect(&rect, RGB(255, 0, 0), RGB(0, 0, 255));

CTreeCtrl::GetItemRect

この関数を呼び出して、 hItem の外接する四角形を取得し、表示されているかどうかを判断します。

BOOL GetItemRect(
    HTREEITEM hItem,
    LPRECT lpRect,
    BOOL bTextOnly) const;

パラメーター

hItem
ツリー ビュー コントロール項目のハンドル。

lpRect
外接する四角形を受け取る RECT 構造体へのポインター。 座標は、ツリー ビュー コントロールの左上隅を基準にしています。

bTextOnly
このパラメーターが 0 以外の場合、外接する四角形には項目のテキストのみが含まれます。 それ以外の場合は、ツリー ビュー コントロールで項目が占有する行全体が含まれます。

戻り値

項目が表示され、外接する四角形が lpRectに含まれている場合は 0 以外。 それ以外の場合は、初期化されていない lpRect 0。

HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();

// Dump the bounds of hmyItem.
if (hmyItem != NULL)
{
   RECT r;

   m_TreeCtrl.GetItemRect(hmyItem, &r, FALSE);

   TRACE(TEXT("left = %d, top = %d, right = %d, bottom = %d\r\n"),
         r.left,
         r.top,
         r.right,
         r.bottom);
}

CTreeCtrl::GetItemState

hItemで指定された項目の状態を返します。

UINT GetItemState(
    HTREEITEM hItem,
    UINT nStateMask) const;

パラメーター

hItem
状態を取得するアイテムのハンドル。

nStateMask
取得する 1 つ以上の状態を示すマスク。 nStateMaskで使用できる値の詳細については、Windows SDK のTVITEM構造のstateおよびstateMaskメンバーの説明を参照してください。

戻り値

nStateMaskで指定された値の C++ ビットごとの OR 演算子 (|) を保持するUINT。 使用可能な値については、 CTreeCtrl::GetItemを参照してください。 特定の状態の値を見つけるには、次の例に示すように、C++ ビットごとの AND 演算子 (&) を実行します。

// Show all of the visible items in bold.
HTREEITEM hItem = m_TreeCtrl.GetFirstVisibleItem();

while (hItem != NULL)
{
   m_TreeCtrl.SetItemState(hItem, TVIS_BOLD, TVIS_BOLD);
   ASSERT(TVIS_BOLD & m_TreeCtrl.GetItemState(hItem, TVIS_BOLD));
   hItem = m_TreeCtrl.GetNextVisibleItem(hItem);
}

CTreeCtrl::GetItemStateEx

現在のツリー ビュー コントロール内の指定した項目の拡張状態を取得します。

UINT GetItemStateEx(HTREEITEM hItem) const;

パラメーター

hItem
[in]ツリー ビュー コントロール項目へのハンドル。

戻り値

アイテムの拡張状態。 詳細については、TVITEMEX構造体のuStateEx メンバーを参照してください。

解説

このメソッドは、Windows SDK で説明されている TVM_GETITEM メッセージを送信します。 このメッセージは、ツリー ビュー コントロール項目を記述する TVITEMEX 構造体を返し、このメソッドはその構造体から uStateEx メンバーを取得します。

CTreeCtrl::GetItemText

hItemで指定された項目のテキストを返します。

CString GetItemText(HTREEITEM hItem) const;

パラメーター

hItem
テキストを取得するアイテムのハンドル。

戻り値

アイテムのテキストを含む CString オブジェクト。

CTreeCtrl::GetNextItem の例を参照してください。

CTreeCtrl::GetLastVisibleItem

現在のツリー ビュー コントロール内の最後に展開されていないノード項目を取得します。

HTREEITEM GetLastVisibleItem() const;

戻り値

メソッドが成功した場合の最後の展開されていないノード項目へのハンドル。それ以外の場合は NULL

解説

このメソッドは、Windows SDK で説明されている TVM_GETNEXTITEM メッセージを送信します。 詳細については、そのメッセージの flag パラメーターの TVGN_LASTVISIBLE フラグを参照してください。

最初のコード例では、現在のツリー ビュー コントロールにアクセスするために使用される変数 ( m_treeCtrl) を定義します。 このコード例では、符号なし整数と複数の HTREEITEM 変数も定義します。 次の例では、これらの変数の 1 つ以上を使用します。

public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;

次のコード例では、最後に説明されていないツリー ビュー ノード項目へのハンドルを取得し、その項目の周囲に 3D 四角形を描画します。 コード例の前のセクションでは、ここでは、米国のルートの国/地域ノード、ペンシルバニア州とワシントン州のサブノード、およびそれらの州の都市のツリー項目で構成されるツリー ビューを作成しました。

CRect rect;
HTREEITEM hLast = m_treeCtrl.GetLastVisibleItem();
m_treeCtrl.GetItemPartRect(hLast, TVGIPR_BUTTON, &rect);
m_treeCtrl.GetDC()->Draw3dRect(&rect, RGB(255, 0, 0), RGB(0, 0, 255));

CTreeCtrl::GetLineColor

このメンバー関数では、Windows SDK で説明されているように、Win32 メッセージ TVM_GETLINECOLOR の動作が実装されます。

COLORREF GetLineColor() const;

戻り値

現在の線の色。

COLORREF cr = m_TreeCtrl.GetLineColor();

CTreeCtrl::GetNextItem

この関数を呼び出して、 nCode パラメーターで示される指定されたリレーションシップを持つツリー ビュー項目を取得して、 hItemします。

HTREEITEM GetNextItem(
    HTREEITEM hItem,
    UINT nCode) const;

パラメーター

hItem
ツリー項目のハンドル。

nCode
hItemとの関係の種類を示すフラグ。 このフラグには、次のいずれかの値を指定できます。

  • TVGN_CARET 現在選択されている項目を取得します。

  • TVGN_CHILDhItem パラメーターで指定された項目の最初の子項目を取得します。

  • TVGN_DROPHILITE ドラッグ アンド ドロップ操作の対象となる項目を取得します。

  • TVGN_FIRSTVISIBLE 最初に表示される項目を取得します。

  • TVGN_LASTVISIBLE ツリー内の最後に展開された項目を取得します。 ツリービュー ウィンドウに表示される最後のアイテムは取得されません。

  • TVGN_NEXT 次の兄弟項目を取得します。

  • TVGN_NEXTVISIBLE 指定した項目の後に表示される次の項目を取得します。

  • TVGN_PARENT 指定した項目の親を取得します。

  • TVGN_PREVIOUS 前の兄弟項目を取得します。

  • TVGN_PREVIOUSVISIBLE 指定した項目の前に表示される最初の項目を取得します。

  • TVGN_ROOT 指定した項目がパーツであるルート項目の最初の子項目を取得します。

戻り値

成功した場合の次の項目のハンドル。それ以外の場合は NULL

解説

この関数は、取得する項目がツリーのルート ノードである場合、 NULL を返します。 たとえば、このメッセージをツリー ビューのルート ノードの第 1 レベルの子で TVGN_PARENT フラグと共に使用すると、メッセージは NULL返されます。

ループで GetNextItem を使用する例については、 CTreeCtrl::DeleteItemを参照してください。

// find the currently selected item
HTREEITEM hCurSel = m_TreeCtrl.GetNextItem(TVI_ROOT, TVGN_CARET);

// report it to the user
if (hCurSel == NULL)
{
   AfxMessageBox(_T("There is no selected item"));
}
else
{
   CString str;
   str.Format(_T("The currently selected item is \"%s\""),
              (LPCTSTR)m_TreeCtrl.GetItemText(hCurSel));
   AfxMessageBox((LPCTSTR)str);
}

CTreeCtrl::GetNextSiblingItem

この関数を呼び出して、 hItemの次の兄弟を取得します。

HTREEITEM GetNextSiblingItem(HTREEITEM hItem) const;

パラメーター

hItem
ツリー項目のハンドル。

戻り値

次の兄弟項目のハンドル。それ以外の場合は NULL

HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();

// Show all of the children of hmyItem in bold.
if (m_TreeCtrl.ItemHasChildren(hmyItem))
{
   HTREEITEM hItem = m_TreeCtrl.GetChildItem(hmyItem);

   while (hItem != NULL)
   {
      m_TreeCtrl.SetItemState(hItem, TVIS_BOLD, TVIS_BOLD);
      hItem = m_TreeCtrl.GetNextSiblingItem(hItem);
   }
}

CTreeCtrl::GetNextVisibleItem

この関数を呼び出して、 hItemの次に表示される項目を取得します。

HTREEITEM GetNextVisibleItem(HTREEITEM hItem) const;

パラメーター

hItem
ツリー項目のハンドル。

戻り値

次に表示される項目のハンドル。それ以外の場合は NULL

CTreeCtrl::SetCheck の例を参照してください。

CTreeCtrl::GetParentItem

この関数を呼び出して、 hItemの親を取得します。

HTREEITEM GetParentItem(HTREEITEM hItem) const;

パラメーター

hItem
ツリー項目のハンドル。

戻り値

親項目のハンドル。それ以外の場合は NULL

解説

この関数は、指定した項目の親がツリーのルート ノードである場合、 NULL を返します。

CTreeCtrl::EnsureVisible の例を参照してください。

CTreeCtrl::GetPrevSiblingItem

この関数を呼び出して、 hItemの前の兄弟を取得します。

HTREEITEM GetPrevSiblingItem(HTREEITEM hItem) const;

パラメーター

hItem
ツリー項目のハンドル。

戻り値

前の兄弟のハンドル。それ以外の場合は NULL

HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();

// Show all of the previous siblings of hmyItem in bold.
HTREEITEM hItem = hmyItem;

while (hItem != NULL)
{
   m_TreeCtrl.SetItemState(hItem, TVIS_BOLD, TVIS_BOLD);
   hItem = m_TreeCtrl.GetPrevSiblingItem(hItem);
}

CTreeCtrl::GetPrevVisibleItem

この関数を呼び出して、 hItemの前に表示されている項目を取得します。

HTREEITEM GetPrevVisibleItem(HTREEITEM hItem) const;

パラメーター

hItem
ツリー項目のハンドル。

戻り値

前に表示された項目のハンドル。それ以外の場合は NULL

HTREEITEM hmyItem = m_TreeCtrl.GetSelectedItem();

// Show all of the previous visible items of hmyItem in bold.
HTREEITEM hItem = hmyItem;

while (hItem != NULL)
{
   m_TreeCtrl.SetItemState(hItem, TVIS_BOLD, TVIS_BOLD);
   hItem = m_TreeCtrl.GetPrevVisibleItem(hItem);
}

CTreeCtrl::GetRootItem

ツリー ビュー コントロールのルート項目を取得するには、この関数を呼び出します。

HTREEITEM GetRootItem() const;

戻り値

ルート項目のハンドル。それ以外の場合は NULL

CTreeCtrl::EditLabel の例を参照してください。

CTreeCtrl::GetScrollTime

このメンバー関数を呼び出して、ツリー ビュー コントロールの最大スクロール時間を取得します。

UINT GetScrollTime() const;

戻り値

最大スクロール時間 (ミリ秒単位)。

解説

このメンバー関数では、Windows SDK で説明されているように、Win32 メッセージ TVM_GETSCROLLTIME の動作が実装されます。

CTreeCtrl::GetSelectedCount

現在のツリー ビュー コントロールで選択されている項目の数を取得します。

UINT GetSelectedCount();

戻り値

選択した項目の数。

解説

このメソッドは、Windows SDK で説明されている TVM_GETSELECTEDCOUNT メッセージを送信します。

CTreeCtrl::GetSelectedItem

ツリー ビュー コントロールの現在選択されている項目を取得するには、この関数を呼び出します。

HTREEITEM GetSelectedItem() const;

戻り値

選択した項目のハンドル。それ以外の場合は NULL

// Expand the selected item and make it visible, if possible.
HTREEITEM hItem = m_TreeCtrl.GetSelectedItem();

if ((hItem != NULL) && m_TreeCtrl.ItemHasChildren(hItem))
{
   m_TreeCtrl.Expand(hItem, TVE_EXPAND);
   m_TreeCtrl.EnsureVisible(hItem);
}

CTreeCtrl::GetTextColor

このメンバー関数では、Windows SDK で説明されているように、Win32 メッセージ TVM_GETTEXTCOLOR の動作が実装されます。

COLORREF GetTextColor() const;

戻り値

現在のテキストの色を表す COLORREF 値。 この値が -1 の場合、コントロールはテキストの色にシステムカラーを使用します。

CTreeCtrl::SetTextColor の例を参照してください。

CTreeCtrl::GetToolTips

このメンバー関数では、Windows SDK で説明されているように、Win32 メッセージ TVM_GETTOOLTIPS の動作が実装されます。

CToolTipCtrl* GetToolTips() const;

戻り値

ツリー コントロールによって使用される CToolTipCtrl オブジェクトへのポインター。 Createメンバー関数がスタイル TVS_NOTOOLTIPSを使用する場合、ヒントは使用されません。NULLが返されます。

解説

GetToolTipsの MFC 実装は、ツールヒント コントロールへのハンドルではなく、ツリー コントロールによって使用されるCToolTipCtrl オブジェクトを返します。

// If the tree control does not have a tooltips control,
// then use m_ToolTips as the tooltips for the tree control.
if (m_TreeCtrl.GetToolTips() == NULL)
{
   m_TreeCtrl.SetToolTips(&m_ToolTips);
}

CTreeCtrl::GetVisibleCount

ツリー ビュー コントロールに表示されている項目の数を取得するには、この関数を呼び出します。

UINT GetVisibleCount() const;

戻り値

ツリー ビュー コントロールに表示される項目の数。それ以外の場合 - 1。

CTreeCtrl::SetCheck の例を参照してください。

CTreeCtrl::HitTest

この関数を呼び出して、ツリー ビュー コントロールのクライアント領域を基準にして、指定したポイントの位置を決定します。

HTREEITEM HitTest(
    CPoint pt,
    UINT* pFlags = NULL) const;

HTREEITEM HitTest(TVHITTESTINFO* pHitTestInfo) const;

パラメーター

pt
テストするポイントのクライアント座標。

pFlags
ヒット テストの結果に関する情報を受け取る整数へのポインター。 「解説」セクションの「 flags メンバー」の下にリストされている 1 つ以上の値を指定できます。

pHitTestInfo
ヒット テストの位置を格納し、ヒット テストの結果に関する情報を受け取る TVHITTESTINFO 構造体のアドレス。

戻り値

指定したポイントを占有するツリー ビュー項目のハンドル。ポイントを占有する項目がない場合は NULL

解説

この関数が呼び出されると、 pt パラメーターは、テストする点の座標を指定します。 この関数は、指定したポイントにある項目のハンドルを返すか、ポイントを占有する項目がない場合は NULL します。 さらに、 pFlags パラメーターには、指定したポイントの位置を示す値が含まれています。 次のいずれかの値になります。

Value 説明
TVHT_ABOVE クライアント領域の上。
TVHT_BELOW クライアント領域の下。
TVHT_NOWHERE クライアント領域で、最後の項目の下。
TVHT_ONITEM 項目に関連付けられているビットマップまたはラベル。
TVHT_ONITEMBUTTON 項目に関連付けられているボタン。
TVHT_ONITEMICON 項目に関連付けられているビットマップ上。
TVHT_ONITEMINDENT 項目に関連付けられているインデント内。
TVHT_ONITEMLABEL 項目に関連付けられているラベル (文字列) 上。
TVHT_ONITEMRIGHT 項目の右側の領域。
TVHT_ONITEMSTATEICON ユーザー定義の状態にあるツリー ビュー項目の状態アイコン。
TVHT_TOLEFT クライアント領域の左側。
TVHT_TORIGHT クライアント領域の右側。

// Select the item that is at the point myPoint.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);

if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
   m_TreeCtrl.SelectItem(hItem);
}

CTreeCtrl::InsertItem

ツリー ビュー コントロールに新しい項目を挿入するには、この関数を呼び出します。

HTREEITEM InsertItem(LPTVINSERTSTRUCT lpInsertStruct);

HTREEITEM InsertItem(
    UINT nMask,
    LPCTSTR lpszItem,
    int nImage,
    int nSelectedImage,
    UINT nState,
    UINT nStateMask,
    LPARAM lParam,
    HTREEITEM hParent,
    HTREEITEM hInsertAfter);

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

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

パラメーター

lpInsertStruct
挿入するツリー ビュー項目の属性を指定する TVINSERTSTRUCT へのポインター。

nMask
設定する属性を指定する整数。 Windows SDK の TVITEM 構造を参照してください。

lpszItem
アイテムのテキストを含む文字列のアドレス。

nImage
ツリー ビュー コントロールのイメージ リスト内の項目のイメージのインデックス。

nSelectedImage
ツリー ビュー コントロールのイメージ リストで選択した項目の画像のインデックス。

nState
アイテムの状態の値を指定します。 適切な状態の一覧については、Windows SDK のツリー ビュー コントロール項目の状態を参照してください。

nStateMask
設定する状態を指定します。 Windows SDK の TVITEM 構造を参照してください。

lParam
項目に関連付けられているポインター サイズのアプリケーション固有の値。

hParent
挿入された項目の親のハンドル。

hInsertAfter
新しい項目を挿入する項目のハンドル。

戻り値

成功した場合の新しい項目のハンドル。それ以外の場合は NULL

解説

この例では、ツリー コントロール項目を挿入するときに関数の各バージョンを使用する状況を示します。

// Insert a root item using the structure. We must
// initialize a TVINSERTSTRUCT structure and pass its
// address to the call. 

TVINSERTSTRUCT tvInsert;
tvInsert.hParent = NULL;
tvInsert.hInsertAfter = NULL;
tvInsert.item.mask = TVIF_TEXT;
tvInsert.item.pszText = _T("United States");

HTREEITEM hCountry = m_TreeCtrl.InsertItem(&tvInsert);

// Insert subitems of that root. Pennsylvania is
// a state in the United States, so its item will be a child
// of the United States item. We won't set any image or states,
// so we supply only the TVIF_TEXT mask flag. This
// override provides nearly complete control over the
// insertion operation without the tedium of initializing
// a structure. If you're going to add lots of items
// to a tree, you might prefer the structure override
// as it affords you a performance win by allowing you
// to initialize some fields of the structure only once,
// outside of your insertion loop.

HTREEITEM hPA = m_TreeCtrl.InsertItem(TVIF_TEXT,
   _T("Pennsylvania"), 0, 0, 0, 0, 0, hCountry, NULL);

// Insert the "Washington" item and assure that it is
// inserted after the "Pennsylvania" item. This override is 
// more appropriate for conveniently inserting items with 
// images.

HTREEITEM hWA = m_TreeCtrl.InsertItem(_T("Washington"),
   0, 0, hCountry, hPA);

// We'll add some cities under each of the states.
// The override used here is most appropriate
// for inserting text-only items.

m_TreeCtrl.InsertItem(_T("Pittsburgh"), hPA, TVI_SORT);
m_TreeCtrl.InsertItem(_T("Harrisburg"), hPA, TVI_SORT);
m_TreeCtrl.InsertItem(_T("Altoona"), hPA, TVI_SORT);

m_TreeCtrl.InsertItem(_T("Seattle"), hWA, TVI_SORT);
m_TreeCtrl.InsertItem(_T("Kalaloch"), hWA, TVI_SORT);
m_TreeCtrl.InsertItem(_T("Yakima"), hWA, TVI_SORT);

CTreeCtrl::ItemHasChildren

この関数を使用して、 hItem で指定されたツリー項目に子項目があるかどうかを判断します。

BOOL ItemHasChildren(HTREEITEM hItem) const;

パラメーター

hItem
ツリー項目のハンドル。

戻り値

hItemで指定されたツリー項目に子項目がある場合は 0 以外、それ以外の場合は 0。

解説

その場合は、 CTreeCtrl::GetChildItem を使用してそれらの子項目を取得できます。

CTreeCtrl::GetSelectedItem の例を参照してください。

CTreeCtrl::MapAccIdToItem

指定したアクセシビリティ識別子を、現在のツリー ビュー コントロールのツリー ビュー項目のハンドルにマップします。

HTREEITEM MapAccIdToItem(UINT uAccId) const;

パラメーター

uAccId
[in]ツリー ビュー項目内の要素のアクセシビリティ識別子。

戻り値

uAccId パラメーターに対応するツリー ビュー項目 (HTREEITEM) へのハンドル。 詳細については、TVITEMEX構造体のhItem メンバーを参照してください。

解説

アクセシビリティ補助は、障のあるユーザーがコンピューターを使用するのに役立つアプリケーションです。 ユーザー補助識別子は、ウィンドウ内の要素を一意に指定するために、 IAccessible インターフェイスによって使用されます。 IAccessible API の詳細については、「Microsoft Active Accessibility」を参照してください。

このメソッドは、Windows SDK で説明されている TVM_MAPACCIDTOHTREEITEM メッセージを送信します。

最初のコード例では、現在のツリー ビュー コントロールにアクセスするために使用される変数 ( m_treeCtrl) を定義します。 このコード例では、符号なし整数と複数の HTREEITEM 変数も定義します。 これらの変数は、次の例で使用します。

public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;

次のコード例では、アクセシビリティ識別子と CTreeCtrl::MapAccIdToItem メソッドを使用して、ルート ツリー ビュー項目へのハンドルを取得します。 この例では、ハンドルと CTreeCtrl::GetItemPartRect メソッドを使用して、その項目の周囲に 3D 四角形を描画します。 コード例の前のセクションでは、ここでは、米国のルートの国/地域ノード、ペンシルバニア州とワシントン州のサブノード、およびそれらの州の都市のツリー項目で構成されるツリー ビューを作成しました。 ルート ツリー ビュー項目をアクセシビリティ識別子に関連付けるために、 CTreeCtrl::MapItemToAccID メソッドを使用しました。

CRect rect;
HTREEITEM hUS = m_treeCtrl.MapAccIdToItem(accIdUS);
m_treeCtrl.GetItemPartRect(hUS, TVGIPR_BUTTON, &rect);
m_treeCtrl.GetDC()->Draw3dRect(&rect, RGB(255, 0, 0), RGB(0, 0, 255));

CTreeCtrl::MapItemToAccID

現在のツリー ビュー コントロール内のツリー ビュー項目の指定されたハンドルをアクセシビリティ識別子にマップします。

UINT MapItemToAccID(HTREEITEM hItem) const;

パラメーター

hItem
[in]コントロール内のツリー ビュー項目のハンドル。 詳細については、TVITEMEX構造体のhItem メンバーを参照してください。

戻り値

hItem パラメーターに対応するアクセシビリティ識別子。

解説

アクセシビリティ補助は、障のあるユーザーがコンピューターを使用するのに役立つアプリケーションです。 ユーザー補助識別子は、ウィンドウ内の要素を一意に指定するために、 IAccessible インターフェイスによって使用されます。 IAccessible API の詳細については、「Microsoft Active Accessibility」を参照してください。

このメソッドは、Windows SDK で説明されている TVM_MAPHTREEITEMTOACCID メッセージを送信します。

最初のコード例では、現在のツリー ビュー コントロールにアクセスするために使用される変数 ( m_treeCtrl) を定義します。 このコード例では、符号なし整数と複数の HTREEITEM 変数も定義します。 これらの変数は、次の例で使用します。

public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;

次のコード例では、ツリー ビュー コントロール項目の識別番号を取得します。 コード例の前のセクションでは、ここでは、米国のルートの国/地域ノード、ペンシルバニア州とワシントン州のサブノード、およびそれらの州の都市のツリー項目で構成されるツリー ビューを作成しました。 このコード例では、ルートの国/地域ノードの一意の識別番号を取得します。

// Map an accessibility identifier to the Pennsylvania node.
accIdUS = m_treeCtrl.MapItemToAccId(hCountry);

CTreeCtrl::Select

この関数を呼び出して、特定のツリー ビュー項目を選択するか、項目をビューにスクロールするか、ドラッグ アンド ドロップ操作のターゲットを示すために使用されるスタイルで項目を再描画します。

BOOL Select(
    HTREEITEM hItem,
    UINT nCode);

パラメーター

hItem
ツリー項目のハンドル。

nCode
実行するアクションの種類。 このパラメーターには、次の 値のいずれかを指定できます。

  • TVGN_CARET 選択範囲を指定した項目に設定します。

  • TVGN_DROPHILITE ドラッグ アンド ドロップ操作のターゲットを示すために使用するスタイルで、指定された項目を再描画します。

  • TVGN_FIRSTVISIBLE ツリー ビューを垂直方向にスクロールして、指定された項目が最初に表示される項目になるようにします。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

nCodeTVGN_CARET値が含まれている場合、親ウィンドウはTVN_SELCHANGINGを受け取り、通知メッセージをTVN_SELCHANGEDします。 さらに、指定した項目が折りたたまれた親アイテムの子である場合、親の子項目の一覧が展開され、指定したアイテムが表示されます。 この場合、親ウィンドウは TVN_ITEMEXPANDINGTVN_ITEMEXPANDED 通知メッセージを受信します。

CTreeCtrl::HitTest の例を参照してください。

CTreeCtrl::SelectDropTarget

ドラッグ アンド ドロップ操作のターゲットを示すために使用するスタイルの項目を再描画するには、この関数を呼び出します。

BOOL SelectDropTarget(HTREEITEM hItem);

パラメーター

hItem
ツリー項目のハンドル。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

// Set the item at the point myPoint as the drop target.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);

if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
   m_TreeCtrl.SelectDropTarget(hItem);
   ASSERT(m_TreeCtrl.GetDropHilightItem() == hItem);
}

CTreeCtrl::SelectItem

この関数を呼び出して、指定されたツリー ビュー項目を選択します。

BOOL SelectItem(HTREEITEM hItem);

パラメーター

hItem
ツリー項目のハンドル。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

hItemNULLされている場合、この関数は項目を選択しません。

// Select the item that is at the point myPoint.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);

if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
   m_TreeCtrl.SelectItem(hItem);
}

CTreeCtrl::SelectSetFirstVisible

この関数を呼び出して、ツリー ビューを垂直方向にスクロールして、指定された項目が最初に表示される項目になるようにします。

BOOL SelectSetFirstVisible(HTREEITEM hItem);

パラメーター

hItem
最初に表示される項目として設定するツリー項目のハンドル。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

この関数は、 TVM_SELECTITEM とメッセージ パラメーターを使用してメッセージ TVGN_FIRSTVISIBLE ウィンドウに送信します。

// Select the item at the point myPoint as the first visible item.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);

if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
   m_TreeCtrl.SelectSetFirstVisible(hItem);
}

CTreeCtrl::SetAutoscrollInfo

現在のツリー ビュー コントロールの自動スクロール速度を設定します。

BOOL SetAutoscrollInfo(
    UINT uPixelsPerSec,
    UINT uUpdateTime);

パラメーター

uPixelsPerSec
[in]スクロールする 1 秒あたりのピクセル数。

uUpdateTime
[in]コントロールの更新間隔。

戻り値

常に TRUE を返します。

解説

自動スクロール パラメーターは、現在表示されていない項目をスクロールして表示するために使用されます。 ツリー ビュー コントロールには、 TVS_EX_AUTOHSCROLL 拡張スタイルが必要です。詳細については、「 ツリー ビュー コントロール拡張スタイルで説明します。

このメソッドは、Windows SDK で説明されている TVM_SETAUTOSCROLLINFO メッセージを送信します。

最初のコード例では、現在のツリー ビュー コントロールにアクセスするために使用される変数 ( m_treeCtrl) を定義します。 このコード例では、符号なし整数と複数の HTREEITEM 変数も定義します。 これらの変数は、次の例で使用します。

public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;

次のコード例では、現在のツリー ビュー コントロールの自動スクロール動作を設定します。 コード例の前のセクションでは、ここでは、米国のルートの国/地域ノード、ペンシルバニア州とワシントン州のサブノード、およびそれらの州の都市のツリー項目で構成されるツリー ビューを作成しました。 フォーカスのあるツリー項目を自動的にスクロールして表示するように、ツリー ビュー コントロールを意図的に狭くしました。 このコード例では、ツリー ビュー コントロールを、ツリー項目が表示されるまで 5 秒ごとに 30 ピクセル/秒自動的にスクロールするように設定します。

// Scroll 30 pixels/sec and redraw every 5 seconds.
m_treeCtrl.SetAutoscrollInfo(30, 5);

CTreeCtrl::SetBkColor

このメンバー関数では、Windows SDK で説明されているように、Win32 メッセージ TVM_SETBKCOLOR の動作が実装されます。

COLORREF SetBkColor(COLORREF clr);

パラメーター

clr
新しい背景色を含む COLORREF 値。 この値が -1 の場合、コントロールは背景色にシステムカラーを使用するように戻ります。

戻り値

現在のテキストの色を表す COLORREF 値。 この値が -1 の場合、コントロールはテキストの色にシステムカラーを使用します。

CTreeCtrl::SetTextColor の例を参照してください。

CTreeCtrl::SetCheck

このメンバー関数を呼び出して、ツリー コントロール項目のチェック状態を設定します。

BOOL SetCheck(
    HTREEITEM hItem,
    BOOL fCheck = TRUE);

パラメーター

hItem
チェック状態の変化を受け取る HTREEITEM

fCheck
ツリー コントロール項目をオンまたはオフにするかどうかを示します。 既定では、 SetCheck はチェックする項目を設定します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

ツリー コントロール項目がオンの場合 (fCheckTRUEに設定されている場合)、項目は隣接するチェックマークと共に表示されます。

UINT uCount = m_TreeCtrl.GetVisibleCount();
HTREEITEM hItem = m_TreeCtrl.GetFirstVisibleItem();

// Toggle the check state of all the visible items.
for (UINT i = 0; i < uCount; i++)
{
   ASSERT(hItem != NULL);
   m_TreeCtrl.SetCheck(hItem, !m_TreeCtrl.GetCheck(hItem));
   hItem = m_TreeCtrl.GetNextVisibleItem(hItem);
}

チェック ボックスを使用するには、ツリー コントロールを設定する前に TVS_CHECKBOXES を設定します。

m_TreeCtrl.ModifyStyle(0, TVS_CHECKBOXES);

HTREEITEM aItem = m_TreeCtrl.InsertItem(_T("AAA"));
m_TreeCtrl.SetCheck(aItem);

CTreeCtrl::SetExtendedStyle

現在のツリー ビュー コントロールの拡張スタイルを設定します。

DWORD SetExtendedStyle(
    DWORD dwExMask,
    DWORD dwExStyles);

パラメーター

dwExMask
[in]現在のツリー ビュー コントロールのどのスタイルがこのメソッドの影響を受けるかを指定するビットマスク。 このパラメーターが 0 の場合は無視され、 dwExStyles パラメーターの値がツリー ビュー コントロールに割り当てられます。 「 ツリー ビュー コントロール拡張スタイル」で説明されているスタイルの 0 またはビットごとの組み合わせ (OR) を指定

dwExStyles
[in]現在のツリー ビュー コントロールで設定またはクリアするスタイルを指定するビットマスク。 スタイルの組み合わせを設定するには、「 ツリー ビュー コントロール拡張スタイルで説明されているスタイルのビットごとの組み合わせ (OR) を指定します。 スタイルのセットをクリアするには、ゼロを指定します。

戻り値

以前の拡張コントロール スタイルを含む値。

解説

このメソッドは、 dwExMask パラメーターで指定されたスタイルをクリアし、 dwExStyles パラメーターで指定されたスタイルを設定します。 dwExMaskのビットに対応する拡張スタイルのみが変更されます。

このメソッドは、Windows SDK で説明されている TVM_SETEXTENDEDSTYLE メッセージを送信します。

最初のコード例では、現在のツリー ビュー コントロールにアクセスするために使用される変数 ( m_treeCtrl) を定義します。 このコード例では、符号なし整数と複数の HTREEITEM 変数も定義します。 これらの変数は、次の例で使用します。

public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;

次のコード例では、 TVS_EX_AUTOHSCROLL 拡張スタイルを現在のツリー ビュー コントロールに追加します。 コード例の前のセクションでは、ここでは、米国のルートの国/地域ノード、ペンシルバニア州とワシントン州のサブノード、およびそれらの州の都市のツリー項目で構成されるツリー ビューを作成しました。 フォーカスのあるツリー項目を自動的にスクロールして表示するように、ツリー ビュー コントロールを意図的に狭くしました。

m_treeCtrl.SetExtendedStyle(TVS_EX_AUTOHSCROLL, TVS_EX_AUTOHSCROLL);

CTreeCtrl::SetImageList

この関数を呼び出して、ツリー ビュー コントロールの標準または状態イメージ リストを設定し、新しいイメージを使用してコントロールを再描画します。

CImageList* SetImageList(
    CImageList* pImageList,
    int nImageListType);

パラメーター

pImageList
割り当てるイメージ リストへのポインター。 pImageListNULLされている場合、すべてのイメージがツリー ビュー コントロールから削除されます。

nImageListType
設定するイメージ リストの種類。 画像の一覧には、次のいずれかの値を指定できます。

  • TVSIL_NORMAL ツリー ビュー項目の選択したイメージと選択されていないイメージを含む、通常のイメージ リストを設定します。 オーバーレイ イメージには、この状態を使用する必要があります。

  • TVSIL_STATE 状態イメージ リストを設定します。このリストには、ユーザー定義の状態にあるツリー ビュー項目のイメージが含まれます。

戻り値

前の画像リストへのポインター (存在する場合)。それ以外の場合は NULL

CTreeCtrl::GetImageList の例を参照してください。

CTreeCtrl::SetIndent

ツリー ビュー コントロールのインデントの幅を設定し、新しい幅を反映するようにコントロールを再描画するには、この関数を呼び出します。

void SetIndent(UINT nIndent);

パラメーター

nIndent
インデントの幅 (ピクセル単位)。 nIndentがシステム定義の最小幅より小さい場合、新しい幅はシステム定義の最小値に設定されます。

CTreeCtrl::GetIndent の例を参照してください。

CTreeCtrl::SetInsertMark

このメンバー関数では、Windows SDK で説明されているように、Win32 メッセージ TVM_SETINSERTMARK の動作が実装されます。

BOOL SetInsertMark(
    HTREEITEM hItem,
    BOOL fAfter = TRUE);

パラメーター

hItem
HTREEITEM 挿入マークを配置する項目を指定する この引数が NULL の場合、挿入マークは削除されます。

fAfter
指定した項目の前または後に挿入マークを配置するかどうかを指定する BOOL 値。 この引数が 0 以外の場合、挿入マークは項目の後に配置されます。 この引数が 0 の場合、挿入マークは項目の前に配置されます。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

// Set the insert mark to be before the item at the point myPoint.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);

if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
   m_TreeCtrl.SetInsertMark(hItem, FALSE);
}

CTreeCtrl::SetInsertMarkColor

このメンバー関数では、Windows SDK で説明されているように、Win32 メッセージ TVM_SETINSERTMARKCOLOR の動作が実装されます。

COLORREF SetInsertMarkColor(COLORREF clrNew);

パラメーター

clrNew
新しい挿入マークの色を含む COLORREF 値。

戻り値

前の挿入マークの色を含む COLORREF 値。

CTreeCtrl::GetInsertMarkColor の例を参照してください。

CTreeCtrl::SetItem

この関数を呼び出して、指定したツリー ビュー項目の属性を設定します。

BOOL SetItem(TVITEM* pItem);

BOOL SetItem(
    HTREEITEM hItem,
    UINT nMask,
    LPCTSTR lpszItem,
    int nImage,
    int nSelectedImage,
    UINT nState,
    UINT nStateMask,
    LPARAM lParam);

パラメーター

pItem
Windows SDK で説明されているように、新しい項目属性を含む TVITEM 構造体へのポインター。

hItem
属性を設定するアイテムのハンドル。 Windows SDK のTVITEM構造体のhItem メンバーを参照してください。

nMask
設定する属性を指定する整数。 TVITEM構造体のmask メンバーを参照してください。

lpszItem
アイテムのテキストを含む文字列のアドレス。

nImage
ツリー ビュー コントロールのイメージ リスト内の項目のイメージのインデックス。 TVITEM構造体のiImage メンバーを参照してください。

nSelectedImage
ツリー ビュー コントロールのイメージ リストで選択した項目の画像のインデックス。 TVITEM構造体のiSelectedImage メンバーを参照してください。

nState
アイテムの状態の値を指定します。 TVITEM構造体のState メンバーを参照してください。

nStateMask
設定する状態を指定します。 TVITEM構造体のstateMask メンバーを参照してください。

lParam
項目に関連付けられているポインター サイズのアプリケーション固有の値。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

TVITEM構造体では、hItem メンバーは項目を識別し、mask メンバーは設定する属性を指定します。

mask メンバーまたは nMask パラメーターでTVIF_TEXT値が指定されている場合、pszText メンバーまたはlpszItemは null で終わる文字列のアドレスであり、cchTextMax メンバーは無視されます。 mask (またはnMask) がTVIF_STATE値を指定する場合、stateMask メンバーまたは nStateMask パラメーターは変更する項目の状態を指定し、state メンバーまたはnState パラメーターにはそれらの状態の値が含まれます。

// Show the item at the point myPoint in bold.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);

if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
   m_TreeCtrl.SetItem(hItem, TVIF_STATE, NULL, 0, 0, TVIS_BOLD,
                      TVIS_BOLD, 0);
}

CTreeCtrl::SetItemData

この関数を呼び出して、指定した項目に関連付けられているアプリケーション固有の値を設定します。

BOOL SetItemData(
    HTREEITEM hItem,
    DWORD_PTR dwData);

パラメーター

hItem
データを取得するアイテムのハンドル。

dwData
hItemによって指定された項目に関連付けられたポインター サイズのアプリケーション固有の値。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

CString str;
HTREEITEM hItem;

// Insert 20 items into the tree control making every item's
// data be the handle of the item.
for (int i = 0; i < 20; i++)
{
   str.Format(TEXT("item %d"), i);
   hItem = m_TreeCtrl.InsertItem(str);

   if (hItem != NULL)
   {
      m_TreeCtrl.SetItemData(hItem, (DWORD_PTR)hItem);
   }
}

CTreeCtrl::SetItemExpandedImageIndex

現在のツリー ビュー コントロールの指定した項目が展開状態のときに表示するイメージのインデックスを設定します。

BOOL SetItemExpandedImageIndex(
    HTREEITEM hItem,
    int iExpandedImage);

パラメーター

hItem
[in]ツリー ビュー コントロール項目へのハンドル。

iExpandedImage
[in]指定した項目が展開状態のときに表示するイメージのインデックス。

戻り値

TRUE このメソッドが成功した場合。それ以外の場合は FALSE

解説

このメソッドは、Windows SDK で説明されている TVM_SETITEM メッセージを送信します。 このメソッドは、iExpandedImage パラメーターをTVITEMEX構造体のiExpandedImage メンバーに割り当て、メッセージでその構造体を使用します。

最初のコード例では、現在のツリー ビュー コントロールにアクセスするために使用される変数 ( m_treeCtrl) を定義します。 このコード例では、符号なし整数と複数の HTREEITEM 変数も定義します。 これらの変数は、次の例で使用します。

public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;

次のコード例は、 CTreeCtrl::GetItemExpandedImageIndex メソッドが CTreeCtrl::SetItemExpandedImageIndex メソッドによって設定された値を返すかどうかを判断するための簡単なテストです。 コード例の前のセクションでは、ここでは、米国のルートの国/地域ノード、ペンシルバニア州とワシントン州のサブノード、およびそれらの州の都市のツリー項目で構成されるツリー ビューを作成しました。

CString str;
CString msg = _T("The set and retrieved item expanded image ")
              _T("indexes are%s equal.");
int nSetItem = 0;
m_treeCtrl.SetItemExpandedImageIndex(hCountry, nSetItem);
int nItem = m_treeCtrl.GetItemExpandedImageIndex(hCountry);
if (nItem == nSetItem)
   str.Format(msg, _T(""));
else
   str.Format(msg, _T(" not"));
AfxMessageBox(str, MB_ICONINFORMATION);

CTreeCtrl::SetItemHeight

このメンバー関数では、Windows SDK で説明されているように、Win32 メッセージ TVM_SETITEMHEIGHT の動作が実装されます。

SHORT SetItemHeight(SHORT cyHeight);

パラメーター

cyHeight
ツリー ビュー内のすべての項目の新しい高さをピクセル単位で指定します。 この引数がイメージの高さより小さい場合は、イメージの高さに設定されます。 この引数が偶数でない場合は、最も近い偶数値に切り捨てられます。 この引数が -1 の場合、コントロールは既定の項目の高さを使用するように戻ります。

戻り値

項目の前の高さ (ピクセル単位)。

CTreeCtrl::GetItemHeight の例を参照してください。

CTreeCtrl::SetItemImage

画像をアイテムに関連付けます。

BOOL SetItemImage(
    HTREEITEM hItem,
    int nImage,
    int nSelectedImage);

パラメーター

hItem
イメージを設定するアイテムのハンドル。

nImage
ツリー ビュー コントロールのイメージ リスト内の項目のイメージのインデックス。

nSelectedImage
ツリー ビュー コントロールのイメージ リストで選択した項目の画像のインデックス。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

ツリー ビュー コントロールの各項目には、ビットマップイメージのペアを関連付けることができます。 項目のラベルの左側にイメージが表示されます。 項目が選択されると 1 つのイメージが表示され、項目が選択されていないときにもう一方のイメージが表示されます。 たとえば、項目を選択したときに開いているフォルダーを表示し、選択されていない場合は閉じたフォルダーを表示することができます。

この関数を呼び出して、ツリー ビュー コントロールのイメージ リスト内で項目のイメージとその選択したイメージのインデックスを設定します。

画像の詳細については、「 CImageList」を参照してください。

CTreeCtrl::GetItemImage の例を参照してください。

CTreeCtrl::SetItemState

hItemで指定された項目の状態を設定します。

BOOL SetItemState(
    HTREEITEM hItem,
    UINT nState,
    UINT nStateMask);

パラメーター

hItem
状態が設定されるアイテムのハンドル。

nState
項目の新しい状態を指定します。

nStateMask
変更する状態を指定します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

状態の詳細については、「 CTreeCtrl::GetItem」を参照してください。

CTreeCtrl::GetItemState の例を参照してください。

CTreeCtrl::SetItemStateEx

現在のツリー ビュー コントロールの指定した項目の拡張状態を設定します。

BOOL SetItemStateEx(
    HTREEITEM hItem,
    UINT uStateEx);

パラメーター

hItem
[in]ツリー ビュー コントロール項目へのハンドル。

uStateEx
[in]アイテムの拡張状態。 詳細については、TVITEMEX構造体のuStateEx メンバーを参照してください。

戻り値

TRUE このメソッドが成功した場合。それ以外の場合は FALSE

解説

このメソッドは、Windows SDK で説明されている TVM_SETITEM メッセージを送信します。 このメソッドは、uStateEx パラメーターをTVITEMEX構造体のuStateEx メンバーに割り当て、メッセージでその構造体を使用します。

最初のコード例では、現在のツリー ビュー コントロールにアクセスするために使用される変数 ( m_treeCtrl) を定義します。 このコード例では、符号なし整数と複数の HTREEITEM 変数も定義します。 これらの変数は、次の例で使用します。

public:
// Variable to access tree control.
CTreeCtrl m_treeCtrl;
// Variable to access splitbutton control.
CSplitButton m_splitbutton;
// Accessibility identifier
UINT accIdUS;
// HTREEITEMs
HTREEITEM hCountry;
HTREEITEM hPA;
HTREEITEM hWA;

次のコード例では、ツリー ビュー項目を無効状態に設定します。 コード例の前のセクションでは、ここでは、米国のルートの国/地域ノード、ペンシルバニア州とワシントン州のサブノード、およびそれらの州の都市のツリー項目で構成されるツリー ビューを作成しました。 このコード例では、ペンシルバニア ノードを無効状態に設定します。

// Disable the Pennsylvania node.
m_treeCtrl.SetItemStateEx(hPA, TVIS_EX_DISABLED);

CTreeCtrl::SetItemText

hItemで指定された項目のテキストを設定します。

BOOL SetItemText(
    HTREEITEM hItem,
    LPCTSTR lpszItem);

パラメーター

hItem
テキストを設定するアイテムのハンドル。

lpszItem
アイテムの新しいテキストを含む文字列のアドレス

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

// Clear the text of the item at point myPoint.
UINT uFlags;
HTREEITEM hItem = m_TreeCtrl.HitTest(myPoint, &uFlags);

if ((hItem != NULL) && (TVHT_ONITEM & uFlags))
{
   m_TreeCtrl.SetItemText(hItem, NULL);
}

CTreeCtrl::SetLineColor

このメンバー関数を呼び出して、ツリー ビュー コントロールの現在の線の色を設定します。

COLORREF SetLineColor(COLORREF clrNew = CLR_DEFAULT);

パラメーター

clrNew
新しい線の色。

戻り値

前の線の色。

解説

このメンバー関数では、Windows SDK で説明されているように、Win32 メッセージ TVM_SETLINECOLOR の動作が実装されます。

COLORREF clrPrev = m_TreeCtrl.SetLineColor(RGB(255, 0, 0));

CTreeCtrl::SetScrollTime

このメンバー関数を呼び出して、ツリー ビュー コントロールの最大スクロール時間を設定します。

UINT SetScrollTime(UINT uScrollTime);

パラメーター

uScrollTime
新しい最大スクロール時間 (ミリ秒単位)。 この値が 100 未満の場合は、100 に切り上げられます。

戻り値

前の最大スクロール時間 (ミリ秒)。

解説

このメンバー関数では、Windows SDK で説明されているように、Win32 メッセージ TVM_SETSCROLLTIME の動作が実装されます。

CTreeCtrl::SetTextColor

このメンバー関数では、Windows SDK で説明されているように、Win32 メッセージ TVM_SETTEXTCOLOR の動作が実装されます。

COLORREF SetTextColor(COLORREF clr);

パラメーター

clr
新しいテキストの色を含む COLORREF 値。 この引数が -1 の場合、コントロールはテキストの色にシステムカラーを使用するように戻ります。

戻り値

前のテキストの色を表す COLORREF 値。 この値が -1 の場合、コントロールはテキストの色にシステムカラーを使用していました。

// change text color to white and background to dark blue
m_TreeCtrl.SetTextColor(RGB(255, 255, 255));
ASSERT(m_TreeCtrl.GetTextColor() == RGB(255, 255, 255));
m_TreeCtrl.SetBkColor(RGB(0, 0, 128));
ASSERT(m_TreeCtrl.GetBkColor() == RGB(0, 0, 128));

// force repaint immediately
m_TreeCtrl.Invalidate();

CTreeCtrl::SetToolTips

このメンバー関数では、Windows SDK で説明されているように、Win32 メッセージ TVM_SETTOOLTIPS の動作が実装されます。

CToolTipCtrl* SetToolTips(CToolTipCtrl* pWndTip);

パラメーター

pWndTip
ツリー コントロールが使用する CToolTipCtrl オブジェクトへのポインター。

戻り値

コントロールによって以前に使用されたヒントを含む CToolTipCtrl オブジェクトへのポインター。以前にツールヒントが使用されなかった場合は NULL

解説

ツールヒントを使用するには、CTreeCtrl オブジェクトの作成時にTVS_NOTOOLTIPSスタイルを指定します。

CTreeCtrl::GetToolTips の例を参照してください。

CTreeCtrl::ShowInfoTip

現在のツリー ビュー コントロールの指定した項目のヒントを表示します。

void ShowInfoTip(HTREEITEM hItem);

パラメーター

hItem
[in]コントロール内のツリー ビュー項目へのハンドル。 詳細については、TVITEMEX構造体のhItem メンバーを参照してください。

解説

ヒントとヒントの違いの詳細については、「 ツールヒントとヒントを参照してください。

このメソッドは、Windows SDK で説明されている TVM_SHOWINFOTIP メッセージを送信します。

CTreeCtrl::SortChildren

ツリー ビュー コントロール内の特定の親項目の子項目をアルファベット順に並べ替えるには、この関数を呼び出します。

BOOL SortChildren(HTREEITEM hItem);

パラメーター

hItem
子項目を並べ替える親アイテムのハンドル。 hItemNULLされている場合、並べ替えはツリーのルートから続行されます。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

SortChildren はツリーを再帰しません。 hItem の直属の子のみが並べ替えられます。

// Sort all of the items in the tree control.
m_TreeCtrl.SortChildren(TVI_ROOT);

CTreeCtrl::SortChildrenCB

項目を比較するアプリケーション定義のコールバック関数を使用してツリー ビュー項目を並べ替えるには、この関数を呼び出します。

BOOL SortChildrenCB(LPTVSORTCB pSort);

パラメーター

pSort
TVSORTCB 構造体へのポインター。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

構造体の比較関数 ( lpfnCompare) は、最初の項目が 2 番目の項目の前にある場合は負の値を返し、最初の項目が 2 番目の項目の後に続く場合は正の値を返す必要があります。2 つの項目が等しい場合は 0 を返す必要があります。

lParam1パラメーターとlParam2 パラメーターは、比較対象の 2 つの項目のTVITEM構造体のlParam メンバーに対応します。 lParamSort パラメーターは、TV_SORTCB構造体のlParam メンバーに対応します。

// Sort the item in reverse alphabetical order.
int CALLBACK MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
   // lParamSort contains a pointer to the tree control.
   // The lParam of an item is just its handle, 
   // as specified with SetItemData
   CTreeCtrl* pmyTreeCtrl = (CTreeCtrl*)lParamSort;
   CString strItem1 = pmyTreeCtrl->GetItemText((HTREEITEM)lParam1);
   CString strItem2 = pmyTreeCtrl->GetItemText((HTREEITEM)lParam2);

   return strItem2.Compare(strItem1);
}

 

TVSORTCB tvs;

// Sort the tree control's items using my
// callback procedure.
tvs.hParent = TVI_ROOT;
tvs.lpfnCompare = MyCompareProc;
tvs.lParam = (LPARAM)&m_TreeCtrl;

m_TreeCtrl.SortChildrenCB(&tvs);

関連項目

MFC サンプル CMNCTRL1
CWnd クラス
階層図
CImageList クラス