帮忙啊!! listctrl 增加一个item后怎么显示不了增加的item 求高手帮忙

解决方案 »

  1.   

    猜测:
    1、可能是控件的样式没有设置好吧。参考样式:cs.style |= LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL;2、插入Item的语句有问题。代码可以贴出来看看。
      

  2.   

    先在在这增加:void CDlgAddPolicyRule::OnOK() 
    {
    // TODO: Add extra validation here
    UpdateData(TRUE);
    int i;
    CString sql;
    BOOL bSelect = FALSE;
    for(i=0;i<m_rulelist.GetItemCount();i++)
    {
    if(m_rulelist.GetCheck(i))
    {
    bSelect = TRUE;
    break;
    }
    }
    if(!bSelect)
    {
    AfxMessageBox("请选择您要加入到策略的规则 ");
    return;
    }
    m_database->BEGINTRANS();
    int ruleid;
    for(i=0;i<m_rulelist.GetItemCount();i++)
    {
    if(m_rulelist.GetCheck(i))
    {
    ruleid = m_rulelist.GetItemData(i);
    sql.Format("insert into TB_PolicyRule(PolicyID,RuleID) values(%d,%d)",m_policyid,ruleid);
    if(!m_database->EXECSQL(sql))
    {
    m_database->ROLLBACK();
    return;
    }
    //AfxMessageBox("hello规则 ");
    }
    }

    m_database->COMMITTRANS();
    CDialog::OnOK();
    }
      

  3.   

    int i=m_list.GetItemCount();
    m_list.EnsureVisible(i-1, FALSE);
      

  4.   

    想在这更新
    不知道怎么实现:
    void CPolicyForm::OnAddPolicyRule()
    {
    CDlgAddPolicyRule dlg;
    dlg.m_policyid = m_curpolicyid;
    dlg.m_groupid = m_curgroupid;
    dlg.m_database = m_database;
    if(dlg.DoModal() == IDOK)
    {
    HTREEITEM node= m_policytree.GetSelectedItem();
    CString str = m_policytree.GetItemText(node);
    ((CIDSManagerApp*)AfxGetApp())->InsertActionLog(1,str.GetBuffer(str.GetLength()), "增加策略规则");



    }
    }