【发布时间】:2010-05-17 06:01:28
【问题描述】:
假设这样的定义,
void CConfigTest::OnSelchangedTree(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
TVITEM item = pNMTreeView->itemNew;
// find the session of the selected item
if(item.hItem != NULL)
{
HTREEITEM root, parent, node;
node = item.hItem;
parent = m_treeSM.GetParentItem(item.hItem);
root = m_treeSM.GetRootItem();
while(parent != root && parent != NULL)
{
node = parent;
parent = m_treeSM.GetParentItem(parent);
}
MyCommand* pCmd = (MyCommand*)(m_treeSM.GetItemData(node));
....
....
我在下面尝试了这些语句,但失败了。
pCmd->subList[2]
(pCmd->subList)[2]
如何获取数组成员值(如 subList[2])。我想用其他相同类型的值替换 subList[2] 的值。谢谢。
【问题讨论】:
-
代码示例似乎是一个错误。 m_treeSM.GetItemData 似乎没有以任何方式链接到 subList。
-
另外,pCmd 不会有 subList 作为成员。所以 pCmd->subList 会失败。
-
这只是一个sn-p代码。实际上有一个 load file 行为来将一个完整的文件加载到内存中。它工作得很好。 :-)
-
你需要提供更好的sn-p。其他评论者的矢量评论是正确的。
-
我更新它们。 OnSelchangedTree() 是加载文件后选择不同节点时的控制函数。我只想动态修改子节点项(数组项)值并将更新值应用到另一个 CWin Obj 以供使用。这不会导致我修改原始文件。