listex 处理notify函数时没有判断此notify要不要处理
原代码为:
,相关case 替换为:
if(_tcsicmp(msg.sType, _T("listheaditemchecked")) == 0)
{
BOOL bCheck = (BOOL)msg.lParam;
int nIndex = msg.wParam;
//判断是否是本LIST发送的notify
CListHeaderUI* pHeader = GetHeader();
for (int i = 0; i < pHeader->GetCount(); i++)
{
if (pHeader->GetItemAt(i) == msg.pSender)
{
for (int i = 0; i < GetCount(); ++i) {
CControlUI* p = GetItemAt(i);
CListTextExtElementUI* pLItem = static_cast<CListTextExtElementUI*>(p->GetInterface(_T("ListTextExElement")));
if (pLItem != NULL) {
pLItem->SetCheck(bCheck);
}
}
break;
}
}
}
else if (_tcsicmp(msg.sType, DUI_MSGTYPE_LISTITEMCHECKED) == 0)
{
for (int i = 0; i < GetCount(); ++i) {
CControlUI* p = GetItemAt(i);
CListTextExtElementUI* pLItem = static_cast<CListTextExtElementUI*>(p->GetInterface(_T("ListTextExElement")));
if (pLItem != NULL && pLItem == msg.pSender)
{
OnListItemChecked(LOWORD(msg.wParam), HIWORD(msg.wParam), msg.lParam);
break;
}
}
}