小白求助,下面这段代码在程序执行时触发了断点,断点的提示信息是GetItemData的参数不能为空 调试时发现hparent的值果然是空的,我现在要怎么做呢
void CECSClientDlg::SetAllUserState(HTREEITEM hParent, int nState)
{
DWORD dwData= m_ACList.GetItemData(hParent);
int ID = HIWORD(dwData);
int lowID = LOWORD(dwData);
if(lowID == SEX_MAN || lowID == SEX_WOMAN) {
m_ACList.SetItemImage(hParent, 3, 3);
}
else {
if(lowID == SEX_MAN) {
m_ACList.SetItemImage(hParent, 1, 1);
}
else if(lowID == SEX_WOMAN) {
m_ACList.SetItemImage(hParent, 2, 2);
}
}
}
else {
if(m_ACList.ItemHasChildren(hParent)) {
HTREEITEM hSubItem = m_ACList.GetChildItem(hParent);
while(hSubItem != NULL) {
SetAllUserState(hSubItem, nState);
hSubItem = m_ACList.GetNextItem(hSubItem, TVGN_NEXT);
}
}
HTREEITEM hNextNode = m_ACList.GetNextItem(hParent, TVGN_NEXT);
while(hNextNode != NULL) {
SetAllUserState(hNextNode, nState);
hNextNode = m_ACList.GetNextItem(hNextNode, TVGN_NEXT);
}
}
}