还要谢谢上次解决的人 本人实现对一个CTreeCtrl的双击后 内存报错 有对CTreeCtrl这个比较熟悉的话   代码你们可一看看 帮帮忙
以下是实现对CTreeCtrl双击的代码
void CService_interfaceDlg::OnDblclkUserinfoTree(NMHDR* pNMHDR, LRESULT* pResult) 
{
HTREEITEMSelected_next_child,
Selected_first_Sib,
Selected_item,
Selected_next,
m_insertitem;
CStringselectedtext[7];
int Selected_pos=0,
year=0,
month=0,
day=0,
d=0;
chartempbuff[128]={0};
charpInsertStrings[128]={0};//if(Flag_Finish>0)
//return;AddUser Edit_User(this);
Selected_item=m_userinfo_tree.GetSelectedItem();
HTREEITEM Parent=m_userinfo_tree.GetRootItem();
HTREEITEM SecectedParent=m_userinfo_tree.GetParentItem(Selected_item);
         Selected_first_Sib=m_userinfo_tree.GetChildItem(Parent);
         UpdateData(false);for(int ii=0;ii<User_Num;ii++)
{if(Selected_first_Sib==Selected_item)
{
   Selected_pos=ii;
   break;
}
Selected_first_Sib=m_userinfo_tree.GetNextSiblingItem(Selected_first_Sib);
}
    
if(Parent==SecectedParent)
{
    Edit_User.m_adantor=(p_header_user+Selected_pos)->sn;
    memcpy(tempbuff,(p_header_user+Selected_pos)->sn,sizeof((p_header_user+Selected_pos)->sn)<7?sizeof((p_header_user+Selected_pos)->sn):7);
  tempbuff[8]='\n';
  Edit_User.m_email=tempbuff; memset(tempbuff,0x00,128);
 year=(p_header_user+Selected_pos)->staryear;
 month=(p_header_user+Selected_pos)->starmonth;
 day=(p_header_user+Selected_pos)->stardate;
 
 if(year>2104||year<1752||month<0||day<0||day>31||month>12)
{
                 year=2006;
 month=11;
 day=11;
} CString str;
 str.Format("%d-%d-%d",year, month, day);
 COleDateTime time(year,month,day,10,10,10); Edit_User.m_start_time=time;
 d=time.GetDay();// COleDateTime add((p_header_user+Selected_pos)->validdate,0,0,0,0,0);
   COleDateTimeSpan add((p_header_user+Selected_pos)->validdate,0,0,0); Edit_User.m_stoptime=Edit_User.m_start_time+add;
             TRACE("%d:%d:%d",Edit_User.m_stoptime.GetYear(),Edit_User.m_stoptime.GetMonth(),Edit_User.m_stoptime.GetDay());
 
 Edit_User.m_status_combo=(p_header_user+Selected_pos)->status;  memcpy(tempbuff,(p_header_user+Selected_pos)->user_e_mail,sizeof((p_header_user+Selected_pos)->user_e_mail)<31?sizeof((p_header_user+Selected_pos)->user_e_mail):31);
 tempbuff[32]='\n';
 Edit_User.m_email=tempbuff;
 memset(tempbuff,0x00,128); memcpy(tempbuff,(p_header_user+Selected_pos)->user_name,sizeof((p_header_user+Selected_pos)->user_name)<15?sizeof((p_header_user+Selected_pos)->user_name):15); 
 tempbuff[16]='\n';
 Edit_User.m_username=tempbuff;
  memset(tempbuff,0x00,128);
             
 memcpy(tempbuff,(p_header_user+Selected_pos)->user_password,sizeof((p_header_user+Selected_pos)->user_password)<15?sizeof((p_header_user+Selected_pos)->user_name):15);  
 tempbuff[16]='\n';
 Edit_User.m_password=tempbuff;
 memset(tempbuff,0x00,128); memcpy(tempbuff,(p_header_user+Selected_pos)->user_telephone,sizeof((p_header_user+Selected_pos)->user_telephone)<15?sizeof((p_header_user+Selected_pos)->user_telephone):15);   Edit_User.m_telephone=tempbuff;if(Edit_User.DoModal()==IDOK)
{
 
 Selected_pro=m_userinfo_tree.GetNextSiblingItem(Selected_item);
     
 //   memset(p_header_user+Selected_pos,0x00,sizeof(t_SHARE_USER_DBASE_INFO));
 (p_header_user+Selected_pos)->stardate =Edit_User.m_start_time.GetDay();
 (p_header_user+Selected_pos)->starmonth=Edit_User.m_start_time.GetMonth();
 (p_header_user+Selected_pos)->staryear=Edit_User.m_start_time.GetYear();  if(Edit_User.m_stoptime>Edit_User.m_start_time)
  {
   COleDateTimeSpan  betweentime=Edit_User.m_stoptime-Edit_User.m_start_time;
   (p_header_user+Selected_pos)->validdate=betweentime.GetDays();
  }
 else
 {
               
   (p_header_user+Selected_pos)->validdate=0;
 }
 memcpy((p_header_user+Selected_pos)->user_name,Edit_User.m_username,Edit_User.m_username.GetLength()<15?Edit_User.m_username.GetLength():15);
 Edit_User.m_username="";
 
 memcpy((p_header_user+Selected_pos)->user_password,Edit_User.m_password,Edit_User.m_password.GetLength()<15?Edit_User.m_password.GetLength():15);
 Edit_User.m_password="";
 memcpy((p_header_user+Selected_pos)->user_e_mail,Edit_User.m_email,Edit_User.m_email.GetLength()<31?Edit_User.m_email.GetLength():31);
 Edit_User.m_email="";
 memcpy((p_header_user+Selected_pos)->user_telephone,Edit_User.m_telephone,Edit_User.m_telephone.GetLength()<15?Edit_User.m_telephone.GetLength():15);
 Edit_User.m_telephone="";
 memcpy((p_header_user+Selected_pos)->sn,Edit_User.m_adantor,Edit_User.m_adantor.GetLength()<7?Edit_User.m_adantor.GetLength():7);
 (p_header_user+Selected_pos)->status=Edit_User.m_status_combo; /////////////////////////////////////////////////////////////////////////////////
sprintf(pInsertStrings,"%s%d\n","User",Selected_pos+1);
m_insertitem=m_userinfo_tree.InsertItem(pInsertStrings,m_hRoot,Selected_item);
memset(pInsertStrings,0x00,128);sprintf(pInsertStrings,"%s%s\n","User Name:",(p_header_user+Selected_pos)->user_name);
m_userinfo_tree.InsertItem(pInsertStrings,m_insertitem);
memset(pInsertStrings,0x00,128);sprintf(pInsertStrings,"%s%s\n","Pass Word:",(p_header_user+Selected_pos)->user_password);
m_userinfo_tree.InsertItem(pInsertStrings,m_insertitem);
memset(pInsertStrings,0x00,128);
            
sprintf(pInsertStrings,"%s%-4d-%-2d-%-2d\n","Start Time:",(p_header_user+Selected_pos)->staryear,(p_header_user+Selected_pos)->starmonth,(p_header_user+Selected_pos)->stardate);
m_userinfo_tree.InsertItem(pInsertStrings,m_insertitem);
memset(pInsertStrings,0x00,128);sprintf(pInsertStrings,"%s%d\n","Validdate:",(p_header_user+Selected_pos)->validdate);
m_userinfo_tree.InsertItem(pInsertStrings,m_insertitem);
memset(pInsertStrings,0x00,128);sprintf(pInsertStrings,"%s%s\n","E-mail:",(p_header_user+Selected_pos)->user_e_mail);
m_userinfo_tree.InsertItem(pInsertStrings,m_insertitem);
memset(pInsertStrings,0x00,128);sprintf(pInsertStrings,"%s%s\n","Telephone:",(p_header_user+Selected_pos)->user_telephone);
m_userinfo_tree.InsertItem(pInsertStrings,m_insertitem);
memset(pInsertStrings,0x00,128);sprintf(pInsertStrings,"%s%s","Adoptor:",(p_header_user+Selected_pos)->sn);
m_userinfo_tree.InsertItem(pInsertStrings,m_insertitem);
   memset(pInsertStrings,0x00,128);
             
if((p_header_user+Selected_pos)->status==0)
{
sprintf(pInsertStrings,"%s%s","Status:","Disable");}
else
{
sprintf(pInsertStrings,"%s%s","Status:","Enable");}if(!m_userinfo_tree.DeleteItem(Selected_item))
{
m_userinfo_tree.InsertItem(pInsertStrings,m_insertitem);
  }
m_userinfo_tree.Expand(m_insertitem,TVE_EXPAND);
}} *pResult = 0; 
}
AddUser Edit_User(this);就是弹出的对话框  等弹出后你如果选OK键就回出现User breakpoint called from code at 0x7c921230  但是可以DEBUG中继续运行 但是多出现几次后 内存就报错了 0x00000008了 肯定是当弹出对话框后点击OK时运行的那些代码 
有问题 因为选CANCE不会有这中错误 因为本人第一次用 CTREECTRL控件 所以 对这个问题不是很了解 望哪位能帮忙