程序首先添加数据库:将界面信息加入:
if(!rst.IsOpen()) rst.Open();
else rst.Requery();
rst.AddNew();
rst.m_center_id = m_center_id;
rst.m_bright = m_bright ;
rst.m_color = m_color ;
rst.m_contrast = m_contrast ;
rst.m_hue = m_hue;
rst.m_quantizer = m_quantizer;
rst.m_frame_size = m_frame_size ;
rst.Update();
rst.Close();
if(!rst.IsOpen()) rst.Open();
rst.m_strFilter.Empty();
    rst.Requery();
rst.MoveLast();
m_vpc_id = rst.m_vp2000c_id; 
获取新加入项的id号,以下为对树形结构的添加操作:
HTREEITEM hSelected = m_TreeCtrl->GetSelectedItem();
    TV_ITEM item;
char text[21];
    item.mask = TVIF_HANDLE | TVIF_TEXT|TVIF_IMAGE|TVIF_PARAM;
    item.hItem = hSelected;
    item.pszText = text;
    item.cchTextMax = 20;
if(hSelected == NULL) return ;
VERIFY(m_TreeCtrl->GetItem(&item)); vt_vp2k_info.SetAddFlag(TRUE);
vt_vp2k_info.SetCenterId( item.lParam );      if( vt_vp2k_info.DoModal() == IDOK)//vt_vp2k_info为对应数据库类
{
// m_TreeCtrl->Expand( hSelected , TVE_EXPAND); TV_INSERTSTRUCT tvinsert;
tvinsert.hParent = hSelected ;
tvinsert.hInsertAfter = TVI_LAST;
tvinsert.item.mask = TVIF_IMAGE | TVIF_TEXT|TVIF_PARAM|TVIF_SELECTEDIMAGE|TVIF_CHILDREN;
tvinsert.item.hItem = NULL; 
tvinsert.item.state = 0;
tvinsert.item.stateMask = 0;
tvinsert.item.cchTextMax = 20;
tvinsert.item.cChildren = 0; CString temp;
temp.Format("远端站 %s",vt_vp2k_info.m_attr) ;
tvinsert.item.pszText= (char*)((LPCTSTR)temp);//vt_vp2k_info.m_attr2) ;/*item desp*/
tvinsert.item.iImage = TV_STATION ;
tvinsert.item.iSelectedImage = TV_STATION ;
tvinsert.item.lParam = vt_vp2k_info.m_vpc_id;  ; /* item id */
tvinsert.item.cChildren = 1 ; m_TreeCtrl->InsertItem(&tvinsert);
m_TreeCtrl->Expand( hSelected , TVE_COLLAPSE);
m_TreeCtrl->Expand( hSelected , TVE_EXPAND);
}
大致情况是这样。
假如此段代码 rst.Update();
rst.Close();
if(!rst.IsOpen()) rst.Open();
rst.m_strFilter.Empty();
    rst.Requery();
就出现上述情况,若删除又无法给item.lParam = vt_vp2k_info.m_vpc_id; 正确的号,树形结构
画的不对。
注:此种情况仅在第一次添加时出现。