void InsertItemString(HWND hDlg)
{
HWND hCtrl = GetDlgItem(hDlg, IDC_LIST);
LVITEM lvi;
memset(&lvi, 0, sizeof(LVITEM));
lvi.mask=LVIF_TEXT;
lvi.iItem = g_LineCount;
lvi.iSubItem = 0; lvi.pszText=_T("110");
ListView_InsertItem(hCtrl,&lvi);
ListView_SetItemText(hCtrl,g_LineCount,1,_T("111"));
ListView_SetItemText(hCtrl,g_LineCount,2,_T("112));
ListView_SetItemText(hCtrl,g_LineCount,3,_T("113"));
ListView_SetItemText(hCtrl,g_LineCount,4,_T("114"));
}
每次执行完此函数是为什么只显示第一列?其他列怎么显示不出来?

解决方案 »

  1.   

    因为你只使用了一次InsertItem,所以只显示第一列
      

  2.   

    其它看上去好像没什么问题,
    只是有可能g_LineCount的值存在问题,
    使用常量或者改变g_LineCount的值测试一下。
      

  3.   

    void InsertItemString(HWND hDlg)
    {
        HWND hCtrl = GetDlgItem(hDlg, IDC_LIST);
        LVITEM lvi;
        memset(&lvi, 0, sizeof(LVITEM));
        lvi.mask=LVIF_TEXT;
        lvi.iItem = g_LineCount;
        lvi.iSubItem = 0;    lvi.pszText=_T("110");
        ListView_InsertItem(hCtrl,&lvi);
        ListView_SetItemText(hCtrl,g_LineCount,1,_T("111"));
        ListView_SetItemText(hCtrl,g_LineCount,2,_T("112));
        ListView_SetItemText(hCtrl,g_LineCount,3,_T("113"));
        ListView_SetItemText(hCtrl,g_LineCount,4,_T("114"));
    }-->void InsertItemString(HWND hDlg)
    {
        CListView* pList = (pList)GetDlgItem(hDlg, IDC_LIST);
        ASSERT(pList);
        pList->InsertItem(g_LineCount, _T(""));
        pList->SetItemText(g_LineCount, 0, _T("110"));
        pList->SetItemText(g_LineCount, 1, _T("111"));
        pList->SetItemText(g_LineCount, 2, _T("112));
        pList->SetItemText(g_LineCount, 3, _T("113"));
        pList->SetItemText(g_LineCount, 4, _T("114"));
    }