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
ツリー ビュー コントロールのサイズと位置を指定します。 オブジェクトまたは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]ツリー ビュー コントロール項目へのハンドル。
戻り値
アイテムの拡張状態。 詳細については、構造体のメンバーをuStateEx
TVITEMEX
参照してください。
解説
このメソッドは、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_NOTOOLTIPS
をCreate
使用する場合、ヒントは使用されません。また、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
ハンドル。 詳細については、構造体のメンバーをhItem
TVITEMEX
参照してください。
解説
アクセシビリティ補助は、障のあるユーザーがコンピューターを使用するのに役立つアプリケーションです。 アクセシビリティ識別子は、ウィンドウ内の要素を 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]コントロール内のツリー ビュー項目のハンドル。 詳細については、構造体のメンバーをhItem
TVITEMEX
参照してください。
戻り値
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 を返します。
解説
ツリー コントロール項目がチェック (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
割り当てるイメージ リストへのポインター。 存在する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
メンバーまたはパラメーターが値をnMask
TVIF_TEXT
指定した場合、pszText
メンバーまたはメンバーlpszItem
は null で終わる文字列のアドレスであり、cchTextMax
メンバーは無視されます。 値を指定TVIF_STATE
した場合mask
、nMask
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::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]アイテムの拡張状態。 詳細については、構造体のメンバーをuStateEx
TVITEMEX
参照してください。
戻り値
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
、以前にツールヒントが使用されなかった場合。
解説
ヒントを使用するには、オブジェクトの作成時に TVS_NOTOOLTIPS
スタイルを CTreeCtrl
指定します。
例
CTreeCtrl::GetToolTips
の例を参照してください。
CTreeCtrl::ShowInfoTip
現在のツリー ビュー コントロールの指定した項目のヒントを表示します。
void ShowInfoTip(HTREEITEM hItem);
パラメーター
hItem
[in]コントロール内のツリー ビュー項目へのハンドル。 詳細については、構造体のメンバーをhItem
TVITEMEX
参照してください。
解説
ヒントとヒントの違いの詳細については、「ヒントとヒント」を参照してください。
このメソッドは、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 を返す必要があります。
パラメーターとパラメーターlParam2
はlParam1
、lParam
比較対象の 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);
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示