How to use 'SetItemData()' and 'GetItemData()'?
A: A tree control is just a visual representation of some hierarchical data structure. You use 'SetItemData()' and 'GetItemData()' to link each tree item to a node if this data structure.
Firstly you have to define a class or a structure that holds the data for each node. For example if your tree is supposed to show a file system, the structure you define will reflect all the properties of a file, like name, size, timestamp, whether it is a directory or not, access rights and so on. The tree will display only the name. Each of the trees items will be linked to an instance of such a structure.
Code:
struct node_data
{
//...
};
'SetItemData()' allows you to attach a 'DWORD' to each item and 'GetItemData()' allows you to get that 'DWORD' back. A plain 'DWORD' isn't of much use, but luckily under Windows a 'DWORD' and a pointer have the same size, so you can cast forth and back between them.
When you add an item to the tree, you attach a pointer to a 'node_data' structure to that item:
Code:
HTREEITEM hItem = m_tree.InsertItem(/*...*/);
node_data *node = new node_data();
// Fill up the new node
node->member = value; //...
// Attach the node to the item
m_tree.SetItemData(hItem, (DWORD) node);
When you handle an operation on some item of the tree (for example selection) you retrieve the node using 'GetItemData()':
Code:
// 'hItem' is a valid iten handle
node_data *node = (node_data *) m_tree.GetItemData(hItem);
// Retrieve, set or take decisions according to the nodes
// members
if(node->member == some_value)
some_action();
value = node->member;
node->member = value;
쪽지:http://www.codeguru.com/forum/showthread.php?t=231227
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[Spring] properties 파일에 정의된 값 가져오기실시간 강의 수업 중 Admin key에 관련된 이야기가 나와 1,2차 Python, Flask 프로젝트에서 DB등 보완이 필요한 값들에 대해서 다른 곳에 따로 저장하고 변수에는 Path 설정해주고 github에 올...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.