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
ツリー ビュー コントロールのサイズと位置を指定します。 オブジェクトまたはRECT構造体をCRect指定できます。

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 の dwExStyle パラメーター CreateWindowEx を参照してください。

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

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

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

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

戻り値

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

解説

Windows 拡張スタイルのCreate前書WS_EX_きで指定された拡張 Windows スタイルを適用する代わりに使用CreateExします。

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
削除するツリー項目のハンドル。 値があるTVI_ROOT場合hitem、すべての項目はツリー ビュー コントロールから削除されます。

戻り値

正常終了した場合は 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
[in] 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

解説

各ツリー コントロール項目は、グラフィックス四角形で囲まれます。 その四角形内のポイントがクリックされるたびに、項目がヒットしたと言われます。 このメソッドは、四角形内のポイントがクリックされたときに、パラメーターによって識別される項目にヒットする最大の四角形を 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 以外。 それ以外の場合は、初期化されていない 0 lpRect

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 の構造体とstateMaskメンバーのTVITEM説明stateを参照してください。

戻り値

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

// 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]ツリー ビュー コントロール項目へのハンドル。

戻り値

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

解説

このメソッドは、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 します。 詳細については、そのメッセージの TVGN_LASTVISIBLE パラメーターのフラグを flag 参照してください。

最初のコード例では、 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_CHILD パラメーターで指定された項目の最初の子項目を hItem 取得します。

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

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

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

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

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

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

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

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

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

戻り値

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

解説

この関数は、取得する項目がツリーのルート ノードである場合に返 NULL されます。 たとえば、ツリー ビューのルート ノードの TVGN_PARENT 第 1 レベルの子にフラグを付けてこのメッセージを使用すると、メッセージが返 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 使用されるオブジェクトへのポインター。 メンバー関数がスタイルTVS_NOTOOLTIPSCreate使用する場合、ヒントは使用されません。また、NULL返されます。

解説

MFC の GetToolTips 実装では、ツールヒント コントロールへのハンドルではなく、ツリー コントロールによって使用されるオブジェクトが返 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
挿入するツリー ビュー項目の属性を指定する a 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]ツリー ビュー項目内の要素のアクセシビリティ識別子。

戻り値

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

解説

アクセシビリティ補助は、障のあるユーザーがコンピューターを使用するのに役立つアプリケーションです。 アクセシビリティ識別子は、ウィンドウ内の要素を IAccessible 一意に指定するためにインターフェイスによって使用されます。 API の詳細IAccessibleについては、「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]コントロール内のツリー ビュー項目のハンドル。 詳細については、構造体のメンバーをhItemTVITEMEX参照してください。

戻り値

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

解説

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

解説

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

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 を返します。

解説

ある場合 hItem 、この関数は NULL項目を選択しません。

// 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 を返します。

解説

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

// 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
割り当てるイメージ リストへのポインター。 存在するNULL場合pImageList、すべてのイメージがツリー ビュー コントロールから削除されます。

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 の hItem 構造体の TVITEM メンバーを参照してください。

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

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

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

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

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

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

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

戻り値

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

解説

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

maskメンバーまたはパラメーターが値をnMaskTVIF_TEXT指定した場合、pszTextメンバーまたはメンバーlpszItemは null で終わる文字列のアドレスであり、cchTextMaxメンバーは無視されます。 値を指定TVIF_STATEした場合masknMaskstateMaskメンバーまたはパラメーターは変更する項目の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 します。 このメソッドは、構造体のiExpandedImageTVITEMEXメンバーにパラメーターを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::SetItemExpandedImageIndex値をCTreeCtrl::GetItemExpandedImageIndex返すかどうかを判断するための簡単なテストです。 コード例の前のセクションでは、ここでは、米国のルートの国/地域ノード、ペンシルバニア州とワシントン州のサブノード、およびそれらの州の都市のツリー項目で構成されるツリー ビューを作成しました。

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]アイテムの拡張状態。 詳細については、構造体のメンバーをuStateExTVITEMEX参照してください。

戻り値

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

解説

このメソッドは、Windows SDK で説明されているメッセージを送信 TVM_SETITEM します。 このメソッドは、構造体のuStateExTVITEMEXメンバーにパラメーターを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 、以前にツールヒントが使用されなかった場合。

解説

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

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

CTreeCtrl::ShowInfoTip

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

void ShowInfoTip(HTREEITEM hItem);

パラメーター

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

解説

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

このメソッドは、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 を返す必要があります。

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

// 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 クラス