GetLastError()返回的结果却为0,这是怎么回事?

解决方案 »

  1.   

    在ListView的OnCreate函数中我设置ListCtrl的列以及表格风格
        CListCtrl& m_List = GetListCtrl();
        m_List.InsertColumn(0, "商品", LVCFMT_CENTER, 100);
        m_List.InsertColumn(1, "购买人", LVCFMT_CENTER, 100);
        m_List.InsertColumn(2, "购买日期", LVCFMT_CENTER, 150);
        m_List.InsertColumn(3, "价格", LVCFMT_CENTER, 100);
        m_List.InsertColumn(4, "数量", LVCFMT_CENTER, 100);    m_List.SetExtendedStyle(m_List.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);在PreCreateWindow函数中已经设置了 cs.style |= LVS_REPORT | LVS_SHOWSELALWAYS;
    然后我在ListView中添加私有函数Display,在其中我添加如下代码
        CListCtrl& m_List = GetListCtrl();    int nCount = m_List.GetItemCount();
        int nIndex = m_List.InsertItem(nCount, _T("aa"), 0);
        m_List.SetItemText(nIndex, 1, _T("bbb"));
        m_List.SetItemText(nIndex, 2, _T("2006-4-20"));
        m_List.SetItemText(nIndex, 3, _T("1.5"));
        m_List.SetItemText(nIndex, 4, _T("1"));    m_List.Invalidate();可当我调用Display时ListView就是没有动静
      

  2.   

    跟踪了一下,发现SetItemText返回FALSE,却找不到原因
      

  3.   

    可能就是laiyiling(陌生人 V2.0[MVP]) 所说的原因
      

  4.   

    Report会有影响吗?可是我看其他人的程序好象没有问题呀,该如何解决呢?谢谢!
      

  5.   

    难道是cs.style &= ~LVS_TYPEMASK;
    cs.style |= LVS_REPORT | LVS_SHOWSELALWAYS;
      

  6.   

    m_List.SetExtendedStyle(m_List.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);放在OnInitialUpdate中呢
      

  7.   

    CListCtrl& m_List = GetListCtrl();
    m_List.SetExtendedStyle(m_List.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);    m_List.InsertColumn(0, "商品", LVCFMT_CENTER, 100);
        m_List.InsertColumn(1, "购买人", LVCFMT_CENTER, 100);
        m_List.InsertColumn(2, "购买日期", LVCFMT_CENTER, 150);
        m_List.InsertColumn(3, "价格", LVCFMT_CENTER, 100);
        m_List.InsertColumn(4, "数量", LVCFMT_CENTER, 100); this->Display();
      

  8.   

    to lixiaosan(小三):放在OnInitialUpdate中也不行呀to NJHS(天上来客(中国程序先锋网www.cppn.net)大量免费源代码):如果按你的方法,添加完列后直接调用Display是可以显示记录的,但ListCtrl中的内容是动态的呀,我要在其他地方添加,但我现在在其他地方添加就不行呀!
      

  9.   

    display改成公共的行不?另外,不应该返回FALSE的。
      

  10.   

    CListCtrl& m_List = GetListCtrl();    int nCount = m_List.GetItemCount();
        int nIndex = m_List.InsertItem(nCount, _T("aa"), 0);
        m_List.SetItemText(nIndex, 1, _T("bbb"));
        m_List.SetItemText(nIndex, 2, _T("2006-4-20"));
        m_List.SetItemText(nIndex, 3, _T("1.5"));
        m_List.SetItemText(nIndex, 4, _T("1"));GetItemCount
    InsertItem
    返回值多少啊?
    -----------------------------------------------
    MyCSDN 免费版 - http://community.csdn.net/Expert/TopicView1.asp?id=4608614
      

  11.   

    to ggw(格格巫):改为公共的还是不行!to zx_sanjin((恒金软件)-不结贴我跟你急!):GetItemCount和InsertItem都返回0
      

  12.   

    我把ListView的OnCreate函数中添加列的动作都挪到Display中,如下:
    CListCtrl& m_List = GetListCtrl();
    TRACE1("%d\n", m_List.InsertColumn(0, "商品", LVCFMT_CENTER, 100));
    TRACE1("%d\n", m_List.InsertColumn(1, "购买人", LVCFMT_CENTER, 100));
    TRACE1("%d\n", m_List.InsertColumn(2, "购买日期", LVCFMT_CENTER, 150));
    TRACE1("%d\n", m_List.InsertColumn(3, "价格", LVCFMT_CENTER, 100));
    TRACE1("%d\n", m_List.InsertColumn(4, "数量", LVCFMT_CENTER, 100));
    TRACE出的值都为0,大家看是怎么回事呀?
      

  13.   

    好象对ListCtrl的操作只要不在OnCreate和OnInitialUpdate中执行就会有问题
      

  14.   

    >>好象对ListCtrl的操作只要不在OnCreate和OnInitialUpdate中执行就会有问题不可能的,一定是你的代码有问题。不过给你个建议,最好不用ListView,而用formview+listctrl,这样程序扩充起来也方便
    -----------------------------------------------
    MyCSDN 免费版 - http://community.csdn.net/Expert/TopicView1.asp?id=4608614
      

  15.   

    // The pointer to my list view control.
    extern CListCtrl* pmyListCtrl;CString strText;
    int nColumnCount = pmyListCtrl->GetHeaderCtrl()->GetItemCount();// Insert 10 items in the list view control.
    for (int i=0;i < 10;i++)
    {
       strText.Format(TEXT("item %d"), i);   // Insert the item, select every other item.
       pmyListCtrl->InsertItem(
          LVIF_TEXT|LVIF_STATE, i, strText, 
          (i%2)==0 ? LVIS_SELECTED : 0, LVIS_SELECTED,
          0, 0);   // Initialize the text of the subitems.
       for (int j=1;j < nColumnCount;j++)
       {
          strText.Format(TEXT("sub-item %d %d"), i, j);
          pmyListCtrl->SetItemText(i, j, strText);
       }这是MSDN的标准写法,你试试,不行就是其他地方错了
    -----------------------------------------------
    MyCSDN 免费版 - http://community.csdn.net/Expert/TopicView1.asp?id=4608614
      

  16.   

    to zx_sanjin((恒金软件)-不结贴我跟你急!):大虾能不能帮我看一下程序呀?我实在看不出来了,这个要求有点过分,我后面再开帖单独给你加分,谢谢了!