Como criar um controle de exibição de árvore
Para criar um controle de exibição em árvore, use a função CreateWindowEx, especificando o valor WC_TREEVIEW para a classe window. A classe de janela de exibição em árvore é registrada no espaço de endereço do aplicativo quando a DLL de controle comum é carregada. Para garantir que a DLL seja carregada, use a função InitCommonControls.
O que você precisa saber
Tecnologias
Pré-requisitos
- C/C++
- Programação da interface do usuário do Windows
Instruções
Criar uma instância de um controle Tree-View
O exemplo a seguir cria um controle de exibição em árvore que é dimensionado para se ajustar à área do cliente da janela pai. Ele também usa funções definidas pelo aplicativo para associar uma lista de imagens ao controle e adicionar itens ao controle.
// Create a tree-view control.
// Returns the handle to the new control if successful,
// or NULL otherwise.
// hwndParent - handle to the control's parent window.
// lpszFileName - name of the file to parse for tree-view items.
// g_hInst - the global instance handle.
// ID_TREEVIEW - the resource ID of the control.
HWND CreateATreeView(HWND hwndParent)
{
RECT rcClient; // dimensions of client area
HWND hwndTV; // handle to tree-view control
// Ensure that the common control DLL is loaded.
InitCommonControls();
// Get the dimensions of the parent window's client area, and create
// the tree-view control.
GetClientRect(hwndParent, &rcClient);
hwndTV = CreateWindowEx(0,
WC_TREEVIEW,
TEXT("Tree View"),
WS_VISIBLE | WS_CHILD | WS_BORDER | TVS_HASLINES,
0,
0,
rcClient.right,
rcClient.bottom,
hwndParent,
(HMENU)ID_TREEVIEW,
g_hInst,
NULL);
// Initialize the image list, and add items to the control.
// InitTreeViewImageLists and InitTreeViewItems are application-
// defined functions, shown later.
if (!InitTreeViewImageLists(hwndTV) ||
!InitTreeViewItems(hwndTV))
{
DestroyWindow(hwndTV);
return FALSE;
}
return hwndTV;
}
Comentários
Ao criar um controle de exibição em árvore, você também pode enviar uma mensagem de WM_SETFONT para definir a fonte a ser usada para o texto. Você deve enviar essa mensagem antes de inserir qualquer item. Por padrão, uma exibição em árvore usa a fonte do título do ícone. Embora você possa personalizar a fonte por item usando o Desenho Personalizado, o controle de exibição em árvore usa as dimensões da fonte especificada pela mensagem WM_SETFONT para determinar o espaçamento e o layout.
Tópicos relacionados