初始了一个表头,希望波形、峰值列在前面。但是下面的代码显示时,这两列在最后,怎么修改? lvcol.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
lvcol.fmt = LVCFMT_CENTER;

lvcol.pszText = "波形时刻";
lvcol.iSubItem = 0;
lvcol.cx = 70;
m_ListCtrl.InsertColumn(0, &lvcol);

lvcol.pszText = "峰值";
lvcol.iSubItem = 1;
lvcol.cx = 70;
m_ListCtrl.InsertColumn(1, &lvcol); for (i = 0; i <=21; i++)
{
lvcol.pszText = szHRI;
lvcol.iSubItem = i + 2;
lvcol.cx = 50;
m_ListCtrl.InsertColumn(i, &lvcol);
} LONG lStyle;  //用report形式显示
lStyle = GetWindowLong(m_ListCtrl.m_hWnd, GWL_STYLE);
lStyle &= ~LVS_TYPEMASK;
lStyle |= LVS_REPORT;
SetWindowLong(m_ListCtrl.m_hWnd, GWL_STYLE, lStyle);

解决方案 »

  1.   

    for (i = 0; i <=21; i++)
    {
    lvcol.pszText = szHRI;
    lvcol.iSubItem = i + 2;
    lvcol.cx = 50;
    m_ListCtrl.InsertColumn(i, &lvcol);
    }
    从零开始,不是又把原来定义好的给冲掉了吗?
      

  2.   

    for (i = 2; i <=21+2; i++)
    {
    lvcol.pszText = szHRI;
    lvcol.iSubItem = i + 2;
    lvcol.cx = 50;
    m_ListCtrl.InsertColumn(i, &lvcol);
    }
    从零开始,不是又把原来定义好的给冲掉了吗?
      

  3.   

    楼上说的是,试试下面的行不行LONG lStyle = m_List1.SendMessage(LVM_GETEXTENDEDLISTVIEWSTYLE);
    lStyle |= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP;
    m_AlarmList1.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, (LPARAM)lStyle);
    LV_COLUMN lvc;
    lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH /*| LVCF_FMT*/;         lvcol.fmt = LVCFMT_CENTER;

    lvcol.pszText = "波形时刻";
    lvcol.iSubItem = 0;
    lvcol.cx = 70;
    ......................
    ...........................
      

  4.   

    请仔细看循环里面,iSubItem时i+2;lvcol.pszText = szHRI;
    lvcol.iSubItem = i + 2;
      

  5.   

    解决了,查了MSDN,结构体里面还有一个变量lvcol.iOrder 控制位置,初始了就OK了。同样谢谢各位,共勉!!
      

  6.   

    还有,我下面的确写错了,这个里面的应该改掉!  i->i+2
    ListCtrl.InsertColumn(i, &lvcol);