Visual Studio — C ++ CListCtrl — GetItemData () возвращает неправильное значение?

У меня есть приложение C ++ с бэкэндом SQL, и я хранил идентификатор строки всех извлеченных столбцов (целое число, bigint первичного ключа в базе данных) с SetItemData () в строках управления списком по мере необходимости. Затем это извлекается с помощью GetItemData (), если этот идентификатор нужно запрашивать.

Теперь у меня возникает странная проблема в том, что в этом сценарии GetItemData () возвращает случайное 7-значное число вместо сохраненного идентификатора. Когда я добавляю строку, я использую следующий код:

CListCtrl& lc = GetListCtrl();
for (int i = 0; i < vInsertItems.size(); i++) {
int j = lc.InsertItem(i,i.strName);

DWORD dwdRowID = (DWORD)cammms,nRowID;
lc.SetItemData(j,dwdRowID);
}

Чтобы извлечь и проверить значение, я могу сделать следующее (где я определил, что nCurrentlySelectedIndex является правильным):

CListCtrl& lc = GetListCtrl();
int msgID = lc.GetItemData(nCurrentlySelectedIndex);
CString debugInt; debugInt.Format(_T("debugInt = %d"),msgID);
AfxMessageBox(debugInt);

Что странно, так это то, что если я запускаю второй пакет кода сразу после первого, все нормально. Но если я запускаю его в отдельной функции, для msgID устанавливается набор случайных 7 цифр, каждый раз отличающийся.

Кто-нибудь знает, что может быть причиной этого?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector