2014-10-08 9 views
0

Я работаю с контролем списка в MFC. Я написал код для вставки элементов в элементе списка, присутствующий в диалоговом окне следующим образом:Не удалось получить данные из списка управления

int nIndex = 0; 

for (int count = 0; count < arrResults.GetSize(); count++) 
{ 
    nIndex = m_cListCtrl.InsertItem(count, _T(arrResults[count].ElementAt(0))); 
    m_cListCtrl.SetItemText(nIndex, 1, _T(arrResults[count].ElementAt(1))); 
} 

Однако, когда я пытаюсь получить данные из m_cListCtrl, он всегда возвращает пустым. Кроме того, метод GetItemCount() также возвращает 0 элементов. Любые предложения приветствуются.

Ниже данные получить код, который я написал:

arrResults.SetSize(1); 
arrResults[0].Add("Header1"); 
arrResults[0].Add("Header2"); 

TestDialog testDlg; 
testDlg.FillControlList(arrResults); // This function has above code to add data to control list 

EXPECT_EQ("Header1", queryDlg.m_cListCtrl.GetItemText(0, 0)); 
EXPECT_EQ("Header2", queryDlg.m_cListCtrl.GetItemText(0, 1)); 

GetItemText функция возвращает пустую строку.

+0

Я не вижу ничего плохого в коде, который вы отправили, поэтому проблема должна быть в коде, который вы не опубликовали. Покажите нам больше? –

+1

** ВСЕГДА ** проверить возвращаемые значения вызовов функций - это 'nIndex' <0? Вы определили столбцы в элементе управления списком? –

+0

@RogerRowland - я обновил вопрос с кодом, чтобы получить данные из списка управления – aks

ответ

0

Когда вы вызываете FillControlList(), вы используете объект testDlg. Но когда вы вызываете GetItemText(), вы используете объект queryDlg. Вы вставили элементы в один диалог, и вы пытаетесь получить данные из другого объекта. Пожалуйста, проверьте это.