2012-07-26 106 views
-2

我想插入一些項目到我的ListCtrl。這是我的代碼。我似乎無法獲得程序中的錯誤。不幸的是,並非所有項目都顯示在列表中,我不知道它爲什麼。請幫幫我。添加ListView項目時不顯示

LVITEM lItem; 

    lItem.mask=LVIF_TEXT; 
    lItem.iItem = 1 + (nColNum - 1) * 3; 
    lItem.iSubItem=0; 
    lItem.pszText = W2T(L""); 
    pDlgSportNews->m_List.InsertItem(1 + (nColNum-1) * 3 , lItem.pszText); 

    WCHAR szzText[MAX_PATH]; 

    lItem.iItem = 1 + (nColNum - 1) * 3; 
    lItem.iSubItem = 1; 
    lItem.pszText = W2T(m_arData[nColNum - 1].szGameName); 
    pDlgSportNews->m_List.SetItemText(1 + (nColNum - 1) * 3 , 1 , lItem.pszText); 

    lItem.mask=LVIF_TEXT; 
    lItem.iItem = 2 + (nColNum - 1) * 3; 
    lItem.iSubItem = 0; 
    lItem.pszText = W2T(m_arData[nColNum - 1].szGameTime); 
    pDlgSportNews->m_List.InsertItem(2 + + (nColNum - 1) * 3 , lItem.pszText); 

    lItem.iItem = 2 + (nColNum - 1) * 3; 
    lItem.iSubItem = 1; 
    lItem.pszText = W2T(m_arData[nColNum - 1].szA_Team); 
    pDlgSportNews->m_List.SetItemText(2 + (nColNum - 1) * 3 , 1 , lItem.pszText); 

    lItem.iItem = 2 + (nColNum - 1) * 3; 
    lItem.iSubItem = 2; 
    if (m_arData[nColNum - 1].bFT_HDP) 
    { 
     swprintf(szzText , L"%s %s" , m_arData[nColNum - 1].szFT_HDP , m_arData[nColNum - 1].szFT_A_HDP); 
     lItem.pszText = W2T(szzText); 
    } 
    else 
     lItem.pszText = W2T(m_arData[nColNum - 1].szFT_A_HDP); 
    pDlgSportNews->m_List.SetItemText(2 + (nColNum - 1) * 3 , 2 , lItem.pszText); 

    lItem.iItem = 2 + (nColNum - 1) * 3; 
    lItem.iSubItem = 3; 
    swprintf(szzText , L"%s %s" , m_arData[nColNum - 1].szFT_UO , m_arData[nColNum - 1].szFT_A_UO); 
    lItem.pszText=W2T(szzText); 
    pDlgSportNews->m_List.SetItemText(2 + (nColNum - 1) * 3 , 3 , lItem.pszText); 

    lItem.iItem = 2 + (nColNum - 1) * 3; 
    lItem.iSubItem = 4; 
    lItem.pszText = W2T(m_arData[nColNum - 1].szFT_S_Odd); 
    pDlgSportNews->m_List.SetItemText(2 + (nColNum - 1) * 3 , 4 , lItem.pszText); 

    lItem.iItem = 2 + (nColNum - 1) * 3; 
    lItem.iSubItem = 5; 
    if (m_arData[nColNum - 1].bHT_HDP) 
    { 
     swprintf(szzText , L"%s %s" , m_arData[nColNum - 1].szHT_HDP , m_arData[nColNum - 1].szHT_A_HDP); 
     lItem.pszText=W2T(szzText); 
    } 
    else 
     lItem.pszText = W2T(m_arData[nColNum - 1].szHT_A_HDP);  
    pDlgSportNews->m_List.SetItemText(2 + (nColNum - 1) * 3 , 5 , lItem.pszText); 

    lItem.iItem = 2 + (nColNum - 1) * 3; 
    lItem.iSubItem = 6; 
    swprintf(szzText , L"%s %s" , m_arData[nColNum - 1].szHT_UO , m_arData[nColNum - 1].szHT_A_UO); 
    lItem.pszText=W2T(szzText); 
    pDlgSportNews->m_List.SetItemText(2 + (nColNum - 1) * 3 , 6 , lItem.pszText); 

    lItem.iItem = 2 + (nColNum - 1) * 3; 
    lItem.iSubItem = 7; 
    lItem.pszText = W2T(m_arData[nColNum - 1].szHT_S_Odd); 
    pDlgSportNews->m_List.SetItemText(2 + (nColNum - 1) * 3 , 7 , lItem.pszText); 

    lItem.pszText = W2T(L" "); 
    pDlgSportNews->m_List.InsertItem(3 + (nColNum-1) * 3 , lItem.pszText); 

    lItem.iItem = 3 + (nColNum - 1) * 3; 
    lItem.iSubItem = 1; 
    lItem.pszText = W2T(m_arData[nColNum - 1].szB_Team); 
    pDlgSportNews->m_List.SetItemText(3 + (nColNum - 1) * 3 , 1 , lItem.pszText); 

    lItem.iItem = 3 + (nColNum - 1) * 3; 
    lItem.iSubItem = 2; 
    if (!m_arData[nColNum - 1].bFT_HDP) 
    { 
     swprintf(szzText , L"%s %s" , m_arData[nColNum - 1].szFT_HDP , m_arData[nColNum - 1].szFT_B_HDP); 
     lItem.pszText=W2T(szzText); 
    } 
    else 
     lItem.pszText = W2T(m_arData[nColNum - 1].szFT_A_HDP); 
    pDlgSportNews->m_List.SetItemText(3 + (nColNum - 1) * 3 , 2 , lItem.pszText); 

    lItem.iItem = 3 + (nColNum - 1) * 3; 
    lItem.iSubItem = 3; 
    lItem.pszText = W2T(m_arData[nColNum - 1].szFT_B_UO); 
    pDlgSportNews->m_List.SetItemText(3 + (nColNum - 1) * 3 , 3 , lItem.pszText); 

    lItem.iItem = 3 + (nColNum - 1) * 3; 
    lItem.iSubItem = 4; 
    lItem.pszText = W2T(m_arData[nColNum - 1].szFT_D_Odd); 
    pDlgSportNews->m_List.SetItemText(3 + (nColNum - 1) * 3 , 4 , lItem.pszText); 

    lItem.iItem = 3 + (nColNum - 1) * 3; 
    lItem.iSubItem = 5; 
    if (!m_arData[nColNum - 1].bHT_HDP) 
    { 
     swprintf(szzText , L"%s %s" , m_arData[nColNum - 1].szHT_HDP , m_arData[nColNum - 1].szHT_B_HDP); 
     lItem.pszText=W2T(szzText); 
    } 
    else 
     lItem.pszText = W2T(m_arData[nColNum - 1].szHT_B_HDP); 
    pDlgSportNews->m_List.SetItemText(3 + (nColNum - 1) * 3 , 5 , lItem.pszText); 

    lItem.iItem = 3 + (nColNum - 1) * 3; 
    lItem.iSubItem = 6; 
    lItem.pszText = W2T(m_arData[nColNum - 1].szHT_B_UO); 
    pDlgSportNews->m_List.SetItemText(3 + (nColNum - 1) * 3 , 6 , lItem.pszText); 

    lItem.iItem = 3 + (nColNum - 1) * 3; 
    lItem.iSubItem = 7; 
    lItem.pszText = W2T(m_arData[nColNum - 1].szHT_D_Odd); 
    pDlgSportNews->m_List.SetItemText(3 + (nColNum - 1) * 3 , 7 , lItem.pszText); 

    pDlgSportNews->m_List.UpdateData(); 

    UpdateData(FALSE); 
+5

*「在我的代碼中沒有錯誤,不幸的是,並非所有的項目都顯示在列表*」 - 看起來像一個不合理的假設。另外,循環是你的朋友。 – 2012-07-26 18:54:04

回答

0

的肢體可能會在這裏,但是:

lItem.iItem = 1 + (nColNum - 1) * 3;

你爲什麼要計算的項目數這條路?這可能是一個原因不是所有的項目都被添加。

樣板添加一個項目一個CListCtrl:

// First item (first row) 
VITEM item; 
item.mask = LVIF_TEXT; 
item.pszText = "Column Text"; 
item.iItem = 0;  // Item number 
item.iSubItem = 0;   // Sub item number (column number) 
m_CListCtrl.InsertItem(&item); 

// Second item (second row) 
//... 
item.iItem = 1; 
//... 

正如有人建議,你應該使用一個循環。

+0

那麼,行數很大,所以我不能一個一個地添加項目。 – bTagTiger 2012-07-26 19:33:08

+0

項目顯示在第1列,而其他列項目未顯示。 – bTagTiger 2012-07-26 19:38:03