大家帮我看看哪里不对,列表视图的列名可以按顺序正常显示.但列表的内容显示的顺序却不对..
这段是列表列名的代码
//列表视图列名
HWND hLCVW = GetDlgItem(hwnd,IDC_LC_VIEW); LVCOLUMN LcoumnOne = {0};
LcoumnOne.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM | LVCF_ORDER;
LcoumnOne.cx = 60;
LcoumnOne.pszText = _T("字段名");
LcoumnOne.iSubItem = 0;
LcoumnOne.iOrder = 0;
SendMessage(hLCVW , LVM_INSERTCOLUMN , 0 , (LPARAM)&LcoumnOne);
LVCOLUMN LcoumnTwo = {0};
LcoumnTwo.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM | LVCF_ORDER;
LcoumnTwo.cx = 50;
LcoumnTwo.pszText = _T("类型");
LcoumnTwo.iSubItem = 1;
LcoumnTwo.iOrder = 1;
SendMessage(hLCVW , LVM_INSERTCOLUMN , 0 , (LPARAM)&LcoumnTwo);
LVCOLUMN LcoumnThree = {0};
LcoumnThree.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM |LVCF_ORDER;
LcoumnThree.cx = 50;
LcoumnThree.pszText = _T("大小");
LcoumnThree.iSubItem = 2;
LcoumnThree.iOrder = 2;
SendMessage(hLCVW , LVM_INSERTCOLUMN , 0 , (LPARAM)&LcoumnThree);
这段是列表视图的代码
//列表视图主列
LVITEM linserOne = {0};
linserOne.mask = LVIF_TEXT;
linserOne.iItem = iLcoumn;
linserOne.pszText = _T("张三");
linserOne.iSubItem = 0;
SendMessage(hLCVW , LVM_INSERTITEM , 0 ,(LPARAM)&linserOne); //列表视图子列
LVITEM linserTwo = {0};
linserTwo.mask = LVIF_TEXT;
linserTwo.iSubItem = 1;
linserTwo.pszText = (LPWSTR)_T("25");
SendMessage(hLCVW , LVM_SETITEMTEXT , iLcoumn ,(LPARAM)&linserTwo); LVITEM linserThree = {0};
linserThree.mask = LVIF_TEXT;
linserThree.iSubItem = 2;
linserThree.pszText = _T("6666666");
SendMessage(hLCVW , LVM_SETITEMTEXT , iLcoumn ,(LPARAM)&linserThree); 如想显示以下结果
Name   Age   Tel
张三    25   6666666但是调试后却显示
Name       Age    Tel
6666666    25     张三请问是哪里出错了?????

解决方案 »

  1.   

    大致看了一下,iLcoumn这个变量的值不对吧,没有变化嘛,估计一直都是0
      

  2.   

    修改后重新复制一下代码..//列表视图列名
    HWND hLCVW = GetDlgItem(hwnd,IDC_LC_VIEW); LVCOLUMN LcoumnOne = {0};
    LcoumnOne.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM | LVCF_ORDER;
    LcoumnOne.cx = 60;
    LcoumnOne.pszText = _T("字段名");
    LcoumnOne.iSubItem = 0;
    LcoumnOne.iOrder = 0;
    SendMessage(hLCVW , LVM_INSERTCOLUMN , 0 , (LPARAM)&LcoumnOne);
    LVCOLUMN LcoumnTwo = {0};
    LcoumnTwo.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM | LVCF_ORDER;
    LcoumnTwo.cx = 50;
    LcoumnTwo.pszText = _T("类型");
    LcoumnTwo.iSubItem = 1;
    LcoumnTwo.iOrder = 1;
    SendMessage(hLCVW , LVM_INSERTCOLUMN , 0 , (LPARAM)&LcoumnTwo);
    LVCOLUMN LcoumnThree = {0};
    LcoumnThree.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM |LVCF_ORDER;
    LcoumnThree.cx = 50;
    LcoumnThree.pszText = _T("大小");
    LcoumnThree.iSubItem = 2;
    LcoumnThree.iOrder = 2;
    SendMessage(hLCVW , LVM_INSERTCOLUMN , 0 , (LPARAM)&LcoumnThree); LVITEM linserOne = {0};
    linserOne.mask = LVIF_TEXT;
    linserOne.iItem = 0;
    linserOne.pszText = _T("张三");
    SendMessage(hLCVW , LVM_INSERTITEM , 0 ,(LPARAM)&linserOne); LVITEM linserTwo = {0};
    linserTwo.mask = LVIF_TEXT;
    linserTwo.iSubItem = 1;
    linserTwo.pszText = (LPWSTR)_T("25");
    SendMessage(hLCVW , LVM_SETITEMTEXT , 0 ,(LPARAM)&linserTwo); LVITEM linserThree = {0};
    linserThree.mask = LVIF_TEXT;
    linserThree.iSubItem = 2;
    linserThree.pszText = (LPWSTR)_T("100");
    SendMessage(hLCVW , LVM_SETITEMTEXT , 0 ,(LPARAM)&linserThree);