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
の使用方法の詳細については、以下を参照してください。
継承階層
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 のCreateWindowEx
の dwExStyle
パラメーターを参照してください。
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
削除するツリー項目のハンドル。 hitem
にTVI_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_CHILD
hItem
パラメーターで指定された項目の最初の子項目を取得します。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
パラメーターには、指定したポイントの位置を示す値が含まれています。 次のいずれかの値になります。
値 | 説明 |
---|---|
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 を返します。
解説
nCode
TVGN_CARET
値が含まれている場合、親ウィンドウはTVN_SELCHANGING
を受け取り、通知メッセージをTVN_SELCHANGED
します。 さらに、指定した項目が折りたたまれた親アイテムの子である場合、親の子項目の一覧が展開され、指定したアイテムが表示されます。 この場合、親ウィンドウは TVN_ITEMEXPANDING
と TVN_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 を返します。
解説
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 を返します。
解説
この関数は、 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 を返します。
解説
ツリー コントロール項目がオンの場合 (fCheck
TRUE
に設定されている場合)、項目は隣接するチェックマークと共に表示されます。
例
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
割り当てるイメージ リストへのポインター。 pImageList
がNULL
されている場合、すべてのイメージがツリー ビュー コントロールから削除されます。
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
子項目を並べ替える親アイテムのハンドル。 hItem
がNULL
されている場合、並べ替えはツリーのルートから続行されます。
戻り値
正常終了した場合は 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);