Я использую виртуальный светящийся элемент управления и получаю данные с карты.Моя проблема в том, что когда я запускаю код, он отображает список нормально, но когда курсор мыши перемещается к элементу управления списком или когда я пытаюсь прокрутить вниз, он выдает ошибку отладочного утверждения, говорящую, что итератор map / set не разыменовывается.Мой метод GetDispInfo () выглядит следующим образом:
void CListCtrlTestDlg::GetDispInfo(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
LV_ITEM* pItem = &(pDispInfo)->item;
map<int, Error_Struct>::iterator it = Error_Map.find((pItem->iItem) + 1);
int iErrCode = (*it).second.i_ErrorCode;
CString cError = (*it).second.c_Error;
switch(pItem->iSubItem)
{
case 0:
sprintf_s(pItem->pszText, 10, "[ %d ]", iErrCode);
break;
case 1:
sprintf_s(pItem->pszText, 100, "%s", cError);
break;
}
*pResult = 0;
}
Также, если, когда указатель мыши находится над элементом управления списком, программа снова вылетает, сообщая о нарушении доступа из показанной строкиниже в файле output.c:
#else /* _UNICODE */
if (_putc_nolock(ch, f) == EOF)
Кто-нибудь получил такой же опыт?Что я здесь не так делаю и как я могу решить эту проблему?
Спасибо!