다음을 통해 공유


CTreeCtrl 수업

Windows의 공용 트리 뷰 컨트롤의 기능을 제공합니다.

구문

class CTreeCtrl : public CWnd

멤버

공용 생성자

속성 설명
CTreeCtrl::CTreeCtrl CTreeCtrl 개체를 생성합니다.

공용 메서드

이름 설명
CTreeCtrl::Create 트리 뷰 컨트롤을 만들어 개체에 CTreeCtrl 연결합니다.
CTreeCtrl::CreateDragImage 지정된 트리 뷰 항목에 대한 끌기 비트맵을 만듭니다.
CTreeCtrl::CreateEx 지정된 Windows 확장 스타일을 사용하여 트리 컨트롤을 만들고 개체에 CTreeCtrl 연결합니다.
CTreeCtrl::DeleteAllItems 트리 뷰 컨트롤의 모든 항목을 삭제합니다.
CTreeCtrl::DeleteItem 트리 뷰 컨트롤에서 새 항목을 삭제합니다.
CTreeCtrl::EditLabel 지정한 트리 뷰 항목을 현재 위치에서 편집합니다.
CTreeCtrl::EndEditLabelNow 현재 트리 뷰 컨트롤의 트리 뷰 항목 레이블에 대한 편집 작업을 취소합니다.
CTreeCtrl::EnsureVisible 트리 뷰 항목이 트리 뷰 컨트롤에 표시되는지 확인합니다.
CTreeCtrl::Expand 지정된 트리 뷰 항목의 자식 항목을 확장하거나 축소합니다.
CTreeCtrl::GetBkColor 컨트롤의 현재 배경색을 검색합니다.
CTreeCtrl::GetCheck 트리 컨트롤 항목의 확인 상태를 검색합니다.
CTreeCtrl::GetChildItem 지정된 트리 뷰 항목의 자식 항목을 검색합니다.
CTreeCtrl::GetCount 트리 뷰 컨트롤과 연결된 트리 항목 수를 검색합니다.
CTreeCtrl::GetDropHilightItem 끌어서 놓기 작업의 대상을 검색합니다.
CTreeCtrl::GetEditControl 지정된 트리 뷰 항목을 편집하는 데 사용되는 편집 컨트롤의 핸들을 검색합니다.
CTreeCtrl::GetExtendedStyle 현재 트리 뷰 컨트롤에서 사용 중인 확장된 스타일을 검색합니다.
CTreeCtrl::GetFirstVisibleItem 지정된 트리 뷰 항목의 첫 번째 표시 항목을 검색합니다.
CTreeCtrl::GetImageList 트리 뷰 컨트롤과 연결된 이미지 목록의 핸들을 검색합니다.
CTreeCtrl::GetIndent 부모에서 트리 뷰 항목의 오프셋(픽셀)을 검색합니다.
CTreeCtrl::GetInsertMarkColor 트리 뷰의 삽입 마크를 그리는 데 사용되는 색을 검색합니다.
CTreeCtrl::GetItem 지정된 트리 뷰 항목의 특성을 검색합니다.
CTreeCtrl::GetItemData 항목과 연결된 애플리케이션별 값을 반환합니다.
CTreeCtrl::GetItemExpandedImageIndex 현재 트리 뷰 컨트롤의 지정된 항목이 확장된 상태일 때 표시할 이미지의 인덱스를 검색합니다.
CTreeCtrl::GetItemHeight 트리 뷰 항목의 현재 높이를 검색합니다.
CTreeCtrl::GetItemImage 항목과 연결된 이미지를 검색합니다.
CTreeCtrl::GetItemPartRect 현재 트리 뷰 컨트롤에서 지정된 항목의 지정된 부분에 대한 경계 사각형을 검색합니다.
CTreeCtrl::GetItemRect 트리 뷰 항목의 경계 사각형을 검색합니다.
CTreeCtrl::GetItemState 항목의 상태를 반환합니다.
CTreeCtrl::GetItemStateEx 현재 트리 뷰 컨트롤에서 지정된 항목의 확장 상태를 검색합니다.
CTreeCtrl::GetItemText 항목의 텍스트를 반환합니다.
CTreeCtrl::GetLastVisibleItem 현재 트리 뷰 컨트롤에서 마지막으로 확장된 항목을 검색합니다.
CTreeCtrl::GetLineColor 트리 뷰 컨트롤의 현재 선 색을 검색합니다.
CTreeCtrl::GetNextItem 지정된 관계와 일치하는 다음 트리 뷰 항목을 검색합니다.
CTreeCtrl::GetNextSiblingItem 지정된 트리 뷰 항목의 다음 형제를 검색합니다.
CTreeCtrl::GetNextVisibleItem 지정된 트리 뷰 항목의 다음으로 표시되는 항목을 검색합니다.
CTreeCtrl::GetParentItem 지정된 트리 뷰 항목의 부모를 검색합니다.
CTreeCtrl::GetPrevSiblingItem 지정된 트리 뷰 항목의 이전 형제를 검색합니다.
CTreeCtrl::GetPrevVisibleItem 지정된 트리 뷰 항목의 이전에 표시된 항목을 검색합니다.
CTreeCtrl::GetRootItem 지정된 트리 뷰 항목의 루트를 검색합니다.
CTreeCtrl::GetScrollTime 트리 뷰 컨트롤의 최대 스크롤 시간을 검색합니다.
CTreeCtrl::GetSelectedCount 현재 트리 뷰 컨트롤에서 선택한 항목의 수를 검색합니다.
CTreeCtrl::GetSelectedItem 현재 선택한 트리 뷰 항목을 검색합니다.
CTreeCtrl::GetTextColor 컨트롤의 현재 텍스트 색을 검색합니다.
CTreeCtrl::GetToolTips 트리 뷰 컨트롤에서 사용하는 자식 ToolTip 컨트롤에 대한 핸들을 검색합니다.
CTreeCtrl::GetVisibleCount 트리 뷰 컨트롤과 연결된 표시되는 트리 항목의 수를 검색합니다.
CTreeCtrl::HitTest 개체와 관련된 커서의 현재 위치를 반환 CTreeCtrl 합니다.
CTreeCtrl::InsertItem 트리 뷰 컨트롤에 새 항목을 삽입합니다.
CTreeCtrl::ItemHasChildren 지정된 항목에 자식 항목이 있는 경우 0이 아닌 값을 반환합니다.
CTreeCtrl::MapAccIdToItem 지정된 접근성 식별자를 핸들에 현재 트리 뷰 컨트롤의 트리 뷰 항목에 매핑합니다.
CTreeCtrl::MapItemToAccID 현재 트리 뷰 컨트롤의 트리 뷰 항목에 지정된 핸들을 접근성 식별자에 매핑합니다.
CTreeCtrl::Select 지정된 트리 뷰 항목을 선택하거나, 뷰로 스크롤하거나, 다시 그립니다.
CTreeCtrl::SelectDropTarget 끌어서 놓기 작업의 대상으로 트리 항목을 다시 그립니다.
CTreeCtrl::SelectItem 지정된 트리 뷰 항목을 선택합니다.
CTreeCtrl::SelectSetFirstVisible 지정된 트리 뷰 항목을 첫 번째 표시 항목으로 선택합니다.
CTreeCtrl::SetAutoscrollInfo 현재 트리 뷰 컨트롤의 자동 제어 속도를 설정합니다.
CTreeCtrl::SetBkColor 컨트롤의 배경색을 설정합니다.
CTreeCtrl::SetCheck 트리 컨트롤 항목의 확인 상태를 설정합니다.
CTreeCtrl::SetExtendedStyle 현재 트리 뷰 컨트롤의 확장 스타일을 설정합니다.
CTreeCtrl::SetImageList 트리 뷰 컨트롤과 연결된 이미지 목록의 핸들을 설정합니다.
CTreeCtrl::SetIndent 부모에서 트리 뷰 항목의 오프셋(픽셀)을 설정합니다.
CTreeCtrl::SetInsertMark 트리 뷰 컨트롤의 삽입 표시를 설정합니다.
CTreeCtrl::SetInsertMarkColor 트리 뷰의 삽입 표시를 그리는 데 사용되는 색을 설정합니다.
CTreeCtrl::SetItem 지정된 트리 뷰 항목의 특성을 설정합니다.
CTreeCtrl::SetItemData 항목과 연결된 애플리케이션별 값을 설정합니다.
CTreeCtrl::SetItemExpandedImageIndex 현재 트리 뷰 컨트롤의 지정된 항목이 확장된 상태일 때 표시할 이미지의 인덱스입니다.
CTreeCtrl::SetItemHeight 트리 뷰 항목의 높이를 설정합니다.
CTreeCtrl::SetItemImage 이미지를 항목과 연결합니다.
CTreeCtrl::SetItemState 항목의 상태를 설정합니다.
CTreeCtrl::SetItemStateEx 현재 트리 뷰 컨트롤에서 지정된 항목의 확장 상태를 설정합니다.
CTreeCtrl::SetItemText 항목의 텍스트를 설정합니다.
CTreeCtrl::SetLineColor 트리 뷰 컨트롤의 현재 선 색을 설정합니다.
CTreeCtrl::SetScrollTime 트리 뷰 컨트롤의 최대 스크롤 시간을 설정합니다.
CTreeCtrl::SetTextColor 컨트롤의 텍스트 색을 설정합니다.
CTreeCtrl::SetToolTips 트리 뷰 컨트롤의 자식 ToolTip 컨트롤을 설정합니다.
CTreeCtrl::ShowInfoTip 현재 트리 뷰 컨트롤에서 지정된 항목에 대한 정보 설명을 표시합니다.
CTreeCtrl::SortChildren 지정된 부모 항목의 자식을 정렬합니다.
CTreeCtrl::SortChildrenCB 애플리케이션 정의 정렬 함수를 사용하여 지정된 부모 항목의 자식을 정렬합니다.

설명

"트리 뷰 컨트롤"은 문서의 제목, 인덱스의 항목 또는 디스크의 파일 및 디렉터리와 같은 항목의 계층적 목록을 표시하는 창입니다. 각 항목은 레이블과 선택적 비트맵 이미지로 구성되며 각 항목에는 연결된 하위 항목 목록이 있을 수 있습니다. 항목을 클릭하면 연결된 하위 항목 목록을 확장하고 축소할 수 있습니다.

이 컨트롤(따라서 CTreeCtrl 클래스)은 Windows 98 및 Windows NT 버전 4 이상에서 실행되는 프로그램에서만 사용할 수 있습니다.

사용에 CTreeCtrl대한 자세한 내용은 다음을 참조하세요.

상속 계층 구조

CObject

CCmdTarget

CWnd

CTreeCtrl

요구 사항

머리글: afxcmn.h

CTreeCtrl::Create

대화 상자 템플릿에서 트리 컨트롤을 지정하거나 사용 CTreeView중인 경우 대화 상자 또는 뷰를 만들 때 트리 컨트롤이 자동으로 만들어집니다.

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

매개 변수

dwStyle
트리 뷰 컨트롤의 스타일을 지정합니다. Windows SDK에 CreateWindow설명된 대로 창 스타일과 트리 뷰 컨트롤 스타일의 조합을 적용합니다.

rect
트리 뷰 컨트롤의 크기와 위치를 지정합니다. 개체 또는 RECT 구조체 CRect 일 수 있습니다.

pParentWnd
트리 뷰 컨트롤의 부모 창(일반적으로 .)을 CDialog지정합니다. 해서는 안 됩니다 NULL.

nID
트리 뷰 컨트롤의 ID를 지정합니다.

Return Value

초기화에 성공하면 0이 아닌 값입니다. 그렇지 않으면 0입니다.

설명

트리 컨트롤을 다른 창의 자식 창으로 만들려면 멤버 함수를 Create 사용합니다. 트리 컨트롤을 사용하여 Create만드는 경우 다른 트리 뷰 스타일 외에도 전달 WS_VISIBLE해야 합니다.

두 단계로 구성 CTreeCtrl 합니다. 먼저 생성자를 호출한 다음, 호출 Create합니다. 그러면 트리 뷰 컨트롤이 만들어지고 개체에 CTreeCtrl 연결됩니다.

확장 창 스타일을 사용하여 트리 컨트롤을 만들려면 대신 호출 CreateEx 합니다 Create.

예시

// 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
생성할 RECT 창의 크기와 위치를 설명하는 구조체에 대한 참조로, 클라이언트 좌표로 pParentWnd표시됩니다.

pParentWnd
컨트롤의 부모 창에 대한 포인터입니다.

nID
컨트롤의 자식 창 ID입니다.

Return Value

성공하면 0이 아닌 경우 0입니다.

설명

Windows 확장 스타일 서문WS_EX_으로 지정된 확장 Windows 스타일을 적용하는 대신 Create 사용합니다CreateEx.

CTreeCtrl::CreateDragImage

이 함수를 호출하여 트리 뷰 컨트롤에서 지정된 항목에 대한 끌기 비트맵을 만들고, 비트맵에 대한 이미지 목록을 만들고, 이미지 목록에 비트맵을 추가합니다.

CImageList* CreateDragImage(HTREEITEM hItem);

매개 변수

hItem
끌 트리 항목의 핸들입니다.

Return Value

성공한 경우 끌기 비트맵이 추가된 이미지 목록에 대한 포인터입니다. 그렇지 않으면 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();

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

예시

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

CTreeCtrl::DeleteItem

트리 뷰 컨트롤에서 항목을 삭제하려면 이 함수를 호출합니다.

BOOL DeleteItem(HTREEITEM hItem);

매개 변수

hItem
삭제할 트리 항목의 핸들입니다. 값이 있는 TVI_ROOT 경우 hitem 트리 뷰 컨트롤에서 모든 항목이 삭제됩니다.

Return Value

성공하면 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
편집할 트리 항목의 핸들입니다.

Return Value

성공하면 항목 텍스트를 편집하는 CEdit 데 사용되는 개체에 대한 포인터이고, 그렇지 않으면 NULL.

설명

편집은 항목의 텍스트를 텍스트가 포함된 한 줄 편집 컨트롤로 바꿔서 수행됩니다.

예시

// 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 작업을 완료하기 전에 트리 보기 항목의 변경 내용을 저장합니다.

Return Value

TRUE이 메서드가 성공하면 이고, 그렇지 않으면 . FALSE

설명

이 메서드는 TVM_ENDEDITLABELNOW Windows SDK에 설명된 메시지를 보냅니다.

CTreeCtrl::EnsureVisible

이 함수를 호출하여 트리 뷰 항목이 표시되는지 확인합니다.

BOOL EnsureVisible(HTREEITEM hItem);

매개 변수

hItem
표시할 트리 항목의 핸들입니다.

Return Value

시스템에서 트리 뷰 컨트롤의 항목을 스크롤하여 지정된 항목이 표시되는지 확인했는지를 반환 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 현재 확장된 경우 목록을 축소하거나 현재 축소된 경우 확장합니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

예시

CTreeCtrl::EnsureVisible에 대한 예를 참조하세요.

CTreeCtrl::GetBkColor

이 멤버 함수는 Windows SDK에 설명된 대로 Win32 메시지 TVM_GETBKCOLOR의 동작을 구현합니다.

COLORREF GetBkColor() const;

Return Value

COLORREF 컨트롤의 현재 창 배경색을 나타내는 값입니다. 이 값이 -1이면 컨트롤에서 시스템 창 색을 사용합니다. 이 경우 컨트롤에서 사용 중인 현재 시스템 색을 가져오는 데 사용할 ::GetSysColor(COLOR_WINDOW) 수 있습니다.

예시

CTreeCtrl::SetTextColor에 대한 예를 참조하세요.

CTreeCtrl::GetCheck

이 멤버 함수를 호출하여 항목의 확인 상태를 검색합니다.

BOOL GetCheck(HTREEITEM hItem) const;

매개 변수

hItem
HTREEITEM 상태 정보를 받을 대상입니다.

Return Value

트리 컨트롤 항목이 선택된 경우 0이 아닌 경우 그렇지 않으면 0입니다.

예시

CTreeCtrl::SetCheck에 대한 예를 참조하세요.

CTreeCtrl::GetChildItem

이 함수를 호출하여 지정한 항목의 자식인 트리 뷰 항목을 hItem검색합니다.

HTREEITEM GetChildItem(HTREEITEM hItem) const;

매개 변수

hItem
트리 항목의 핸들입니다.

Return Value

성공하면 자식 항목의 핸들입니다. 그렇지 않으면 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;

Return Value

트리 뷰 컨트롤의 항목 수입니다.

예시

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

CTreeCtrl::GetDropHilightItem

끌어서 놓기 작업의 대상인 항목을 검색하려면 이 함수를 호출합니다.

HTREEITEM GetDropHilightItem() const;

Return Value

성공하면 삭제된 항목의 핸들입니다. 그렇지 않으면 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;

Return Value

항목 텍스트를 편집하는 데 사용되는 편집 컨트롤에 대한 포인터입니다(성공한 경우). 그렇지 않으면 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;

Return Value

현재 트리 뷰 컨트롤의 확장된 스타일에 대한 비트 조합(OR)이 포함된 값입니다. 자세한 내용은 트리 뷰 컨트롤 확장 스타일을 참조 하세요.

설명

이 메서드는 TVM_GETEXTENDEDSTYLE Windows SDK에 설명된 메시지를 보냅니다.

CTreeCtrl::GetFirstVisibleItem

이 함수를 호출하여 트리 뷰 컨트롤의 첫 번째 표시 항목을 검색합니다.

HTREEITEM GetFirstVisibleItem() const;

Return Value

표시되는 첫 번째 항목의 핸들입니다. 그렇지 않으면 NULL.

예시

CTreeCtrl::SetCheck에 대한 예를 참조하세요.

CTreeCtrl::GetImageList

이 함수를 호출하여 트리 뷰 컨트롤과 연결된 일반 또는 상태 이미지 목록의 핸들을 검색합니다.

CImageList* GetImageList(UINT nImageList) const;

매개 변수

nImageList
검색할 이미지 목록의 유형입니다. 이미지 목록은 다음 값 중 하나일 수 있습니다.

  • TVSIL_NORMAL 트리 뷰 항목에 대해 선택한 이미지와 선택되지 않은 이미지가 포함된 일반 이미지 목록을 검색합니다.

  • TVSIL_STATE 사용자 정의 상태에 있는 트리 뷰 항목에 대한 이미지를 포함하는 상태 이미지 목록을 검색합니다.

Return Value

성공하면 컨트롤의 이미지 목록에 대한 포인터입니다. 그렇지 않으면 NULL.

설명

트리 뷰 컨트롤의 각 항목에는 연결된 비트맵 이미지 쌍이 있을 수 있습니다. 한 이미지는 항목을 선택할 때 표시되고 다른 이미지는 항목을 선택하지 않으면 표시됩니다. 예를 들어 항목이 선택되면 열린 폴더를 표시하고 선택하지 않으면 닫힌 폴더를 표시할 수 있습니다.

이미지 목록에 대한 자세한 내용은 클래스를 참조하세요 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;

Return Value

들여쓰기 크기(픽셀 단위)입니다.

예시

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

CTreeCtrl::GetInsertMarkColor

이 멤버 함수는 Windows SDK에 설명된 대로 Win32 메시지 TVM_GETINSERTMARKCOLOR의 동작을 구현합니다.

COLORREF GetInsertMarkColor() const;

Return Value

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 설명된 대로 구조체에 대한 포인터입니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

예시

CTreeCtrl::DeleteItem에 대한 예를 참조하세요.

CTreeCtrl::GetItemData

이 함수를 호출하여 지정된 항목과 연결된 애플리케이션별 값을 검색합니다.

DWORD_PTR GetItemData(HTREEITEM hItem) const;

매개 변수

hItem
데이터를 검색할 항목의 핸들입니다.

Return Value

지정한 항목 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] 트리 뷰 컨트롤 항목에 대한 핸들입니다.

Return Value

지정된 항목이 확장된 상태일 때 표시할 이미지의 인덱스입니다.

설명

이 메서드는 TVM_GETITEM Windows SDK에 설명된 메시지를 보냅니다. 이 메시지는 트리 뷰 컨트롤 항목을 설명하는 구조를 반환 TVITEMEX 한 다음, 이 메서드는 해당 구조체에서 멤버를 iExpandedImage 검색합니다.

CTreeCtrl::GetItemHeight

이 멤버 함수는 Windows SDK에 설명된 대로 Win32 메시지 TVM_GETITEMHEIGHT의 동작을 구현합니다.

SHORT GetItemHeight() const;

Return Value

항목의 높이(픽셀)입니다.

예시

// 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
트리 뷰 컨트롤의 이미지 목록 내에서 항목이 선택한 이미지의 인덱스를 받는 정수입니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

이미지는 항목 레이블의 왼쪽에 표시됩니다. 한 이미지는 항목을 선택할 때 표시되고 다른 이미지는 항목을 선택하지 않으면 표시됩니다. 예를 들어 항목이 선택되면 열린 폴더를 표시하고 선택하지 않으면 닫힌 폴더를 표시할 수 있습니다.

이 함수를 호출하여 트리 뷰 컨트롤의 이미지 목록 내에서 항목 이미지 및 선택한 이미지의 인덱스 검색

예시

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.

Return Value

TRUE이 메서드가 성공하면 이고, 그렇지 않으면 . FALSE

설명

각 트리 컨트롤 항목은 그래픽 사각형으로 제한됩니다. 해당 사각형의 지점을 클릭할 때마다 항목이 적중되었다고 합니다. 이 메서드는 사각형의 점을 클릭할 때 매개 변수로 식별된 항목이 적중되도록 가장 큰 사각형을 hItem 반환합니다.

이 메서드는 TVM_GETITEMPARTRECT Windows SDK에 설명된 메시지를 보냅니다. 자세한 내용은 매크로를 참조하세요 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이 아닌 경우 경계 사각형에는 항목의 텍스트만 포함됩니다. 그렇지 않으면 트리 뷰 컨트롤에서 항목이 차지하는 전체 줄이 포함됩니다.

Return Value

경계 사각형이 포함된 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
검색할 하나 이상의 상태를 나타내는 마스크입니다. 가능한 값에 대한 자세한 내용은 Windows SDK의 state 구조체 및 stateMask 멤버에 TVITEM 대한 nStateMask설명을 참조하세요.

Return Value

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] 트리 뷰 컨트롤 항목에 대한 핸들입니다.

Return Value

항목의 확장 상태입니다. 자세한 내용은 구조체 uStateEx 의 멤버를 참조하세요 TVITEMEX .

설명

이 메서드는 TVM_GETITEM Windows SDK에 설명된 메시지를 보냅니다. 이 메시지는 트리 뷰 컨트롤 항목을 설명하는 구조를 반환 TVITEMEX 하고, 이 메서드는 해당 구조체에서 멤버를 uStateEx 검색합니다.

CTreeCtrl::GetItemText

로 지정된 hItem항목의 텍스트를 반환합니다.

CString GetItemText(HTREEITEM hItem) const;

매개 변수

hItem
텍스트를 검색할 항목의 핸들입니다.

Return Value

CString 항목의 텍스트가 포함된 개체입니다.

예시

CTreeCtrl::GetNextItem에 대한 예를 참조하세요.

CTreeCtrl::GetLastVisibleItem

현재 트리 뷰 컨트롤에서 마지막으로 열린 노드 항목을 검색합니다.

HTREEITEM GetLastVisibleItem() const;

Return Value

메서드가 성공한 경우 마지막으로 연결되지 않은 노드 항목에 대한 핸들입니다. 그렇지 않으면 . NULL

설명

이 메서드는 TVM_GETNEXTITEM Windows SDK에 설명된 메시지를 보냅니다. 자세한 내용은 해당 메시지의 TVGN_LASTVISIBLE 매개 변수에 있는 플래그를 flag 참조하세요.

예시

첫 번째 코드 예제는 현재 트리 뷰 컨트롤에 액세스하는 데 사용되는 변수 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;

다음 코드 예제에서는 마지막으로 연결되지 않은 트리 뷰 노드 항목에 대한 핸들을 검색한 다음 해당 항목 주위에 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;

Return Value

현재 선 색입니다.

예시

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 지정된 항목이 일부인 루트 항목의 첫 번째 자식 항목을 검색합니다.

Return Value

성공하면 다음 항목의 핸들입니다. 그렇지 않으면 NULL.

설명

검색되는 항목이 트리의 루트 노드인 경우 이 함수가 반환 NULL 됩니다. 예를 들어 트리 뷰 루트 노드의 첫 번째 수준 자식에 플래그와 함께 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
트리 항목의 핸들입니다.

Return Value

다음 형제 항목의 핸들입니다. 그렇지 않으면 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
트리 항목의 핸들입니다.

Return Value

표시되는 다음 항목의 핸들입니다. 그렇지 않으면 NULL.

예시

CTreeCtrl::SetCheck에 대한 예를 참조하세요.

CTreeCtrl::GetParentItem

의 부모를 검색하려면 이 함수를 호출합니다 hItem.

HTREEITEM GetParentItem(HTREEITEM hItem) const;

매개 변수

hItem
트리 항목의 핸들입니다.

Return Value

부모 항목의 핸들입니다. 그렇지 않으면 NULL.

설명

지정된 항목의 부모가 트리의 루트 노드인 경우 이 함수가 반환 NULL 됩니다.

예시

CTreeCtrl::EnsureVisible에 대한 예를 참조하세요.

CTreeCtrl::GetPrevSiblingItem

이 함수를 호출하여 이전 형제를 검색합니다 hItem.

HTREEITEM GetPrevSiblingItem(HTREEITEM hItem) const;

매개 변수

hItem
트리 항목의 핸들입니다.

Return Value

이전 형제의 핸들입니다. 그렇지 않으면 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
트리 항목의 핸들입니다.

Return Value

이전에 표시된 항목의 핸들입니다. 그렇지 않으면 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;

Return Value

루트 항목의 핸들입니다. 그렇지 않으면 NULL.

예시

CTreeCtrl::EditLabel에 대한 예를 참조하세요.

CTreeCtrl::GetScrollTime

이 멤버 함수를 호출하여 트리 뷰 컨트롤의 최대 스크롤 시간을 검색합니다.

UINT GetScrollTime() const;

Return Value

최대 스크롤 시간(밀리초)입니다.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 Win32 메시지 TVM_GETSCROLLTIME의 동작을 구현합니다.

CTreeCtrl::GetSelectedCount

현재 트리 뷰 컨트롤에서 선택한 항목의 수를 검색합니다.

UINT GetSelectedCount();

Return Value

선택한 항목의 수입니다.

설명

이 메서드는 TVM_GETSELECTEDCOUNT Windows SDK에 설명된 메시지를 보냅니다.

CTreeCtrl::GetSelectedItem

이 함수를 호출하여 트리 뷰 컨트롤의 현재 선택된 항목을 검색합니다.

HTREEITEM GetSelectedItem() const;

Return Value

선택한 항목의 핸들입니다. 그렇지 않으면 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;

Return Value

COLORREF 현재 텍스트 색을 나타내는 값입니다. 이 값이 -1이면 컨트롤은 텍스트 색에 시스템 색을 사용합니다.

예시

CTreeCtrl::SetTextColor에 대한 예를 참조하세요.

CTreeCtrl::GetToolTips

이 멤버 함수는 Windows SDK에 설명된 대로 Win32 메시지 TVM_GETTOOLTIPS의 동작을 구현합니다.

CToolTipCtrl* GetToolTips() const;

Return Value

트리 컨트롤에서 CToolTipCtrl 사용할 개체에 대한 포인터입니다. 멤버 함수가 Create 스타일을 TVS_NOTOOLTIPS사용하는 경우 도구 설명이 사용되지 않고 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;

Return Value

트리 뷰 컨트롤에 표시되는 항목의 수입니다. 그렇지 않으면 - 1.

예시

CTreeCtrl::SetCheck에 대한 예를 참조하세요.

CTreeCtrl::HitTest

트리 뷰 컨트롤의 클라이언트 영역을 기준으로 지정된 지점의 위치를 확인하려면 이 함수를 호출합니다.

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

HTREEITEM HitTest(TVHITTESTINFO* pHitTestInfo) const;

매개 변수

pt
테스트할 지점의 클라이언트 좌표입니다.

pFlags
적중 테스트 결과에 대한 정보를 수신하는 정수에 대한 포인터입니다. 설명 섹션의 멤버 아래에 flags 나열된 값 중 하나 이상일 수 있습니다.

pHitTestInfo
적중 테스트의 TVHITTESTINFO 위치를 포함하고 적중 테스트의 결과에 대한 정보를 수신하는 구조체의 주소입니다.

Return Value

지정된 지점을 차지하는 트리 뷰 항목의 핸들이거나 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
설정할 특성을 지정하는 정수입니다. TVITEM Windows SDK의 구조를 참조하세요.

lpszItem
항목의 텍스트가 포함된 문자열의 주소입니다.

nImage
트리 뷰 컨트롤의 이미지 목록에 있는 항목 이미지의 인덱스입니다.

nSelectedImage
트리 뷰 컨트롤의 이미지 목록에서 항목이 선택한 이미지의 인덱스입니다.

nState
항목의 상태에 대한 값을 지정합니다. 적절한 상태 목록은 Windows SDK의 트리 뷰 컨트롤 항목 상태를 참조하세요.

nStateMask
설정할 상태를 지정합니다. TVITEM Windows SDK의 구조를 참조하세요.

lParam
항목과 연결된 포인터 크기의 애플리케이션별 값입니다.

hParent
삽입된 항목의 부모 핸들입니다.

hInsertAfter
새 항목을 삽입할 항목의 핸들입니다.

Return Value

성공하면 새 항목의 핸들입니다. 그렇지 않으면 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
트리 항목의 핸들입니다.

Return Value

지정 hItem 한 트리 항목에 자식 항목이 있으면 0이 아닌 경우 0이 아닙니다.

설명

그렇다면 해당 자식 항목을 검색하는 데 사용할 CTreeCtrl::GetChildItem 수 있습니다.

예시

CTreeCtrl::GetSelectedItem에 대한 예를 참조하세요.

CTreeCtrl::MapAccIdToItem

지정된 접근성 식별자를 현재 트리 뷰 컨트롤의 트리 뷰 항목 핸들에 매핑합니다.

HTREEITEM MapAccIdToItem(UINT uAccId) const;

매개 변수

uAccId
[in] 트리 뷰 항목의 요소에 대한 접근성 식별자입니다.

Return Value

매개 변수에 해당하는 트리 뷰 항목(HTREEITEM)에 uAccId 대한 핸들입니다. 자세한 내용은 구조체 hItem 의 멤버를 참조하세요 TVITEMEX .

설명

접근성 보조 기능은 장애가 있는 사용자가 컴퓨터를 사용하는 데 도움이 되는 애플리케이션입니다. 접근성 식별자는 인터페이스에서 창에서 IAccessible 요소를 고유하게 지정하는 데 사용됩니다. API에 IAccessible 대한 자세한 내용은 Microsoft Active Accessibility를 참조 하세요.

이 메서드는 TVM_MAPACCIDTOHTREEITEM Windows SDK에 설명된 메시지를 보냅니다.

예시

첫 번째 코드 예제는 현재 트리 뷰 컨트롤에 액세스하는 데 사용되는 변수 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 .

Return Value

hItem 매개 변수에 해당하는 접근성 식별자입니다.

설명

접근성 보조 기능은 장애가 있는 사용자가 컴퓨터를 사용하는 데 도움이 되는 애플리케이션입니다. 접근성 식별자는 인터페이스에서 창에서 IAccessible 요소를 고유하게 지정하는 데 사용됩니다. API에 IAccessible 대한 자세한 내용은 Microsoft Active Accessibility를 참조 하세요.

이 메서드는 TVM_MAPHTREEITEMTOACCID Windows SDK에 설명된 메시지를 보냅니다.

예시

첫 번째 코드 예제는 현재 트리 뷰 컨트롤에 액세스하는 데 사용되는 변수 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;

다음 코드 예제에서는 트리 뷰 컨트롤 항목에 대 한 식별 번호를 가져옵니다. 표시되지 않는 코드 예제의 이전 섹션에서는 미국 대한 루트 국가/지역 노드, 펜실베니아 및 워싱턴 주의 하위 노드 및 해당 주의 도시에 대한 트리 항목으로 구성된 트리 뷰를 만들었습니다. 이 코드 예제에서는 루트 국가/지역 노드에 대한 고유 ID 번호를 가져옵니다.

// 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 지정된 항목이 첫 번째 표시 항목이 되도록 트리 보기를 세로로 스크롤합니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

TVGN_CARET이 포함된 경우 nCode 부모 창에서 알림 TVN_SELCHANGED 메시지를 받습니다TVN_SELCHANGING. 또한 지정된 항목이 축소된 부모 항목의 자식인 경우 부모의 자식 항목 목록이 확장되어 지정된 항목이 표시됩니다. 이 경우 부모 창은 알림 메시지를 받습니다 TVN_ITEMEXPANDING TVN_ITEMEXPANDED .

예시

CTreeCtrl::HitTest에 대한 예를 참조하세요.

CTreeCtrl::SelectDropTarget

끌어서 놓기 작업의 대상을 나타내는 데 사용되는 스타일의 항목을 다시 그리려면 이 함수를 호출합니다.

BOOL SelectDropTarget(HTREEITEM hItem);

매개 변수

hItem
트리 항목의 핸들입니다.

Return Value

성공하면 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
트리 항목의 핸들입니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

NULL경우 hItem 이 함수는 항목을 선택하지 않습니다.

예시

// 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
첫 번째 표시 항목으로 설정할 트리 항목의 핸들입니다.

Return Value

성공하면 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] 스크롤할 초당 픽셀 수입니다.

uUpdateTime
[in] 컨트롤 업데이트 사이의 시간 간격입니다.

Return Value

항상 TRUE를 반환합니다.

설명

자동 제어 매개 변수는 현재 표시되지 않는 항목을 보기로 스크롤하는 데 사용됩니다. 트리 뷰 컨트롤에는 트리 뷰 컨트롤 확장 스타일에 설명된 확장된 스타일이 있어야 합니다TVS_EX_AUTOHSCROLL.

이 메서드는 TVM_SETAUTOSCROLLINFO Windows SDK에 설명된 메시지를 보냅니다.

예시

첫 번째 코드 예제는 현재 트리 뷰 컨트롤에 액세스하는 데 사용되는 변수 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이면 컨트롤은 배경색에 시스템 색을 사용하는 것으로 되돌아갑니다.

Return Value

COLORREF 현재 텍스트 색을 나타내는 값입니다. 이 값이 -1이면 컨트롤은 텍스트 색에 시스템 색을 사용합니다.

예시

CTreeCtrl::SetTextColor에 대한 예를 참조하세요.

CTreeCtrl::SetCheck

트리 컨트롤 항목에 대한 확인 상태를 설정하려면 이 멤버 함수를 호출합니다.

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

매개 변수

hItem
확인 상태 변경을 받을 대상입니다 HTREEITEM .

fCheck
트리 컨트롤 항목을 선택하거나 선택 취소할지 여부를 나타냅니다. 기본적으로 SetCheck 확인할 항목을 설정합니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

트리 컨트롤 항목이 선택되면(fCheckTRUE설정), 항목이 인접한 확인 표시와 함께 나타납니다.

예시

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

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

확인란을 사용하려면 트리 컨트롤을 채우기 전에 설정합니다 TVS_CHECKBOXES .

m_TreeCtrl.ModifyStyle(0, TVS_CHECKBOXES);

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

CTreeCtrl::SetExtendedStyle

현재 트리 뷰 컨트롤의 확장 스타일을 설정합니다.

DWORD SetExtendedStyle(
    DWORD dwExMask,
    DWORD dwExStyles);

매개 변수

dwExMask
[in] 이 메서드의 영향을 받는 현재 트리 뷰 컨트롤의 스타일을 지정하는 비트 마스크입니다. 이 매개 변수가 0이면 무시되고 매개 변수 값 dwExStyles 이 트리 뷰 컨트롤에 할당됩니다. 트리 뷰 컨트롤 확장 스타일에 설명된 스타일의 0 또는 비트 조합(OR)을 지정합니다.

dwExStyles
[in] 현재 트리 뷰 컨트롤에서 설정하거나 지울 스타일을 지정하는 비트 마스크입니다. 스타일 조합을 설정하려면 트리 뷰 컨트롤 확장 스타일에 설명된 스타일의 비트 조합(OR)을 지정합니다. 스타일 집합을 지우려면 0을 지정합니다.

Return Value

이전 확장 컨트롤 스타일을 포함하는 값입니다.

설명

이 메서드는 매개 변수에 dwExMask 지정된 스타일을 지워 매개 변수에 dwExStyles 지정된 스타일을 설정합니다. 변경된 비트에 해당하는 확장 스타일만 해당합니다 dwExMask .

이 메서드는 TVM_SETEXTENDEDSTYLE Windows SDK에 설명된 메시지를 보냅니다.

예시

첫 번째 코드 예제는 현재 트리 뷰 컨트롤에 액세스하는 데 사용되는 변수 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 사용자 정의 상태에 있는 트리 뷰 항목에 대한 이미지를 포함하는 상태 이미지 목록을 설정합니다.

Return Value

이전 이미지 목록에 대한 포인터(있는 경우) 그렇지 않으면 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 삽입 표시를 배치할 항목을 지정하는

fAfter
BOOL 삽입 표시가 지정된 항목 앞 또는 뒤에 있는지 지정하는 값입니다. 이 인수가 0이 아닌 경우 삽입 표시는 항목 뒤에 배치됩니다. 이 인수가 0이면 삽입 표시가 항목 앞에 배치됩니다.

Return Value

성공하면 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 새 삽입 표시 색을 포함하는 값입니다.

Return Value

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
특성을 설정할 항목의 핸들입니다. hItem Windows SDK에서 TVITEM 구조체의 멤버를 참조하세요.

nMask
설정할 특성을 지정하는 정수입니다. 구조체의 mask 멤버를 참조하세요 TVITEM .

lpszItem
항목의 텍스트가 포함된 문자열의 주소입니다.

nImage
트리 뷰 컨트롤의 이미지 목록에 있는 항목 이미지의 인덱스입니다. 구조체의 iImage 멤버를 참조하세요 TVITEM .

nSelectedImage
트리 뷰 컨트롤의 이미지 목록에서 항목이 선택한 이미지의 인덱스입니다. 구조체의 iSelectedImage 멤버를 참조하세요 TVITEM .

nState
항목의 상태에 대한 값을 지정합니다. 구조체의 State 멤버를 참조하세요 TVITEM .

nStateMask
설정할 상태를 지정합니다. 구조체의 stateMask 멤버를 참조하세요 TVITEM .

lParam
항목과 연결된 포인터 크기의 애플리케이션별 값입니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

구조체에서 TVITEM 멤버는 hItem 항목을 식별하고 멤버는 mask 설정할 특성을 지정합니다.

멤버 또는 매개 변수가 mask nMask 값을 pszText 지정 TVIF_TEXT 하는 경우 멤버 또는 lpszItem null로 끝나는 문자열 cchTextMax 의 주소이며 멤버는 무시됩니다. 값을 지정하는 경우 mask 멤버 또는 nStateMask 매개 변수는 변경할 항목 상태를 지정하고 state 멤버 또는 nState 매개 변수에 해당 상태에 대한 값을 nMask포함합니다.TVIF_STATE stateMask

예시

// 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과 연결된 포인터 크기의 애플리케이션별 값입니다.

Return Value

성공하면 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] 지정된 항목이 확장된 상태일 때 표시할 이미지의 인덱스입니다.

Return Value

TRUE이 메서드가 성공하면 이고, 그렇지 않으면 . FALSE

설명

이 메서드는 TVM_SETITEM Windows SDK에 설명된 메시지를 보냅니다. 이 메서드는 구조체 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이면 컨트롤은 기본 항목 높이를 사용하는 것으로 되돌아갑니다.

Return Value

항목의 이전 높이(픽셀)입니다.

예시

CTreeCtrl::GetItemHeight에 대한 예를 참조하세요.

CTreeCtrl::SetItemImage

이미지를 항목과 연결합니다.

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

매개 변수

hItem
이미지를 설정할 항목의 핸들입니다.

nImage
트리 뷰 컨트롤의 이미지 목록에 있는 항목 이미지의 인덱스입니다.

nSelectedImage
트리 뷰 컨트롤의 이미지 목록에서 항목이 선택한 이미지의 인덱스입니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

트리 뷰 컨트롤의 각 항목에는 연결된 비트맵 이미지 쌍이 있을 수 있습니다. 이미지는 항목 레이블의 왼쪽에 표시됩니다. 한 이미지는 항목을 선택할 때 표시되고 다른 이미지는 항목을 선택하지 않으면 표시됩니다. 예를 들어 항목이 선택되면 열린 폴더를 표시하고 선택하지 않으면 닫힌 폴더를 표시할 수 있습니다.

이 함수를 호출하여 트리 뷰 컨트롤의 이미지 목록 내에서 항목 이미지의 인덱스와 선택한 이미지의 인덱스 설정을 지정합니다.

이미지에 대한 자세한 내용은 다음을 참조하세요 CImageList.

예시

CTreeCtrl::GetItemImage에 대한 예를 참조하세요.

CTreeCtrl::SetItemState

로 지정된 hItem항목의 상태를 설정합니다.

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

매개 변수

hItem
상태를 설정할 항목의 핸들입니다.

nState
항목의 새 상태를 지정합니다.

nStateMask
변경할 상태를 지정합니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

상태에 대한 자세한 내용은 다음을 참조하세요 CTreeCtrl::GetItem.

예시

CTreeCtrl::GetItemState에 대한 예를 참조하세요.

CTreeCtrl::SetItemStateEx

현재 트리 뷰 컨트롤에서 지정된 항목의 확장 상태를 설정합니다.

BOOL SetItemStateEx(
    HTREEITEM hItem,
    UINT uStateEx);

매개 변수

hItem
[in] 트리 뷰 컨트롤 항목에 대한 핸들입니다.

uStateEx
[in] 항목의 확장 상태입니다. 자세한 내용은 구조체 uStateEx 의 멤버를 참조하세요 TVITEMEX .

Return Value

TRUE이 메서드가 성공하면 이고, 그렇지 않으면 . FALSE

설명

이 메서드는 TVM_SETITEM Windows SDK에 설명된 메시지를 보냅니다. 이 메서드는 구조체 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
항목에 대한 새 텍스트가 포함된 문자열의 주소

Return Value

성공하면 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
새 선 색입니다.

Return Value

이전 선 색입니다.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 Win32 메시지 TVM_SETLINECOLOR의 동작을 구현합니다.

예시

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

CTreeCtrl::SetScrollTime

트리 뷰 컨트롤의 최대 스크롤 시간을 설정하려면 이 멤버 함수를 호출합니다.

UINT SetScrollTime(UINT uScrollTime);

매개 변수

uScrollTime
새 최대 스크롤 시간(밀리초)입니다. 이 값이 100보다 작으면 100까지 반올림됩니다.

Return Value

이전 최대 스크롤 시간(밀리초)입니다.

설명

이 멤버 함수는 Windows SDK에 설명된 대로 Win32 메시지 TVM_SETSCROLLTIME의 동작을 구현합니다.

CTreeCtrl::SetTextColor

이 멤버 함수는 Windows SDK에 설명된 대로 Win32 메시지 TVM_SETTEXTCOLOR의 동작을 구현합니다.

COLORREF SetTextColor(COLORREF clr);

매개 변수

clr
COLORREF 새 텍스트 색을 포함하는 값입니다. 이 인수가 -1이면 컨트롤이 텍스트 색에 시스템 색을 사용하도록 되돌아갑니다.

Return Value

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 사용할 개체에 대한 포인터입니다.

Return Value

이전에 컨트롤 NULL 에서 CToolTipCtrl 사용한 도구 설명이 들어 있거나 이전에 사용된 도구 설명이 없는 개체에 대한 포인터입니다.

설명

도구 설명을 사용하려면 개체를 TVS_NOTOOLTIPS 만들 CTreeCtrl 때 스타일을 나타냅니다.

예시

CTreeCtrl::GetToolTips에 대한 예를 참조하세요.

CTreeCtrl::ShowInfoTip

현재 트리 뷰 컨트롤에서 지정된 항목에 대한 정보 설명을 표시합니다.

void ShowInfoTip(HTREEITEM hItem);

매개 변수

hItem
[in] 컨트롤의 트리 뷰 항목에 대한 핸들입니다. 자세한 내용은 구조체 hItem 의 멤버를 참조하세요 TVITEMEX .

설명

도구 설명과 인포 팁의 차이점에 대한 자세한 내용은 도구 설명 및 정보 설명을 참조하세요.

이 메서드는 TVM_SHOWINFOTIP Windows SDK에 설명된 메시지를 보냅니다.

CTreeCtrl::SortChildren

트리 뷰 컨트롤에서 지정된 부모 항목의 자식 항목을 사전순으로 정렬하려면 이 함수를 호출합니다.

BOOL SortChildren(HTREEITEM hItem);

매개 변수

hItem
자식 항목을 정렬할 부모 항목의 핸들입니다. 이 NULL경우 hItem 트리의 루트에서 정렬이 진행됩니다.

Return Value

성공하면 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 구조체에 관한 포인터입니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

구조체의 비교 함수 lpfnCompare는 첫 번째 항목이 두 번째 항목 앞에 오면 음수 값을 반환하고, 첫 번째 항목이 두 번째 항목을 따라야 하는 경우 양수 값을 반환하거나, 두 항목이 동일한 경우 0을 반환해야 합니다.

lParam2 매개 변수는 lParam1 비교할 두 항목에 TVITEM 대한 구조체의 멤버에 해당 lParam 합니다. 매개 변수는 lParamSort 구조체의 lParam 멤버에 해당합니다 TV_SORTCB .

예시

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

   return strItem2.Compare(strItem1);
}

 

TVSORTCB tvs;

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

m_TreeCtrl.SortChildrenCB(&tvs);

참고 항목

MFC 샘플 CMNCTRL1
CWnd 클래스
계층 구조 차트
CImageList 클래스