近来 使用了CTreeCtrl的控件加入了DBLICK鼠标双击事件.然后在这个函数中定义了一个对话框,当双击时就弹出该对话框,结果发现 弹出对话框后编辑完后按OK键 内存报错....有时在DOMODEL事还没弹出就报错.....检查了一下 内存管理没问题,请问哪个高手能够帮忙解决>..?
解决方案 »
- mfc下activex控件插入后,显示不正确
- 请教高手
- ado 操作数据库 VC++6.0+sql2000+windows2000 RtlFreeHeap错误, 我需不需要显示调用 _Recoredset.Rlease()
- 学习中遇到问题?
- sdk两问题:1,如何控制对话框里的idc_static的前背景色2.想象MFC重载DefWindowProc,能做到吗?
- 我是初学者DDX是什么呀?请大虾指教~~!!
- 奇怪的win2000密码丢失解决办法????
- 关于P2P文件下载的问题!
- 音乐播放器效果
- ftp代码
- 寻用modem+vc6.0开发IVR的朋友1000发开发费用
- 如何处理richedit20 中SetSel问题!
{
static HTREEITEM Selected_next_child,
Selected_first_Sib,
Selected_item,
Selected_next;
static CString selectedtext[7];
static int Selected_pos,
year,
month,
day,
d;
char tempbuff[128]={0};
AddUser Edit_User(this);
Selected_item=m_userinfo_tree.GetSelectedItem();
HTREEITEM Parent=m_userinfo_tree.GetRootItem();
HTREEITEM SecectedParent=m_userinfo_tree.GetParentItem(m_userinfo_tree.GetSelectedItem());
Selected_first_Sib=m_userinfo_tree.GetChildItem(Parent); 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;
year=(p_header_user+Selected_pos)->staryear;
month=(p_header_user+Selected_pos)->starmonth;
day=(p_header_user+Selected_pos)->stardate;
CTime time(year,month,day,0,0,0);
//Edit_User.m_start_time=time;
d=time.GetDay();
// d=Edit_User.m_start_time.GetDay();
CTimeSpan add((p_header_user+Selected_pos)->validdate,0,0,0);
TRACE("# %d",add.GetDays());
Edit_User.m_stoptime=Edit_User.m_start_time+add;
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);
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);
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);
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)
{
m_userinfo_tree.DeleteItem(Selected_item);
Selected_next=m_userinfo_tree.GetNextSiblingItem(Selected_item);
(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();
CTimeSpan betweentime;
betweentime=Edit_User.m_stoptime-Edit_User.m_start_time;
(p_header_user+Selected_pos)->validdate=betweentime.GetDays();
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_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_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; ////////////////////////////////////////////////////
///add the
////////////////////////////////////////////////////////////
}
}
*pResult = 0;
}这里的 AddUser 是对话框类,有 CString m_username;
CString m_password;
CTime m_start_time;
CTime m_stoptime;
CString m_email;
int m_status_combo;
CString m_adantor;
CString m_telephone;
这些都是用CLASSWIZARD生成的控件相关变量..
------ 以下是签名 ------
SoftDN.com, 提供免费的项目管理平台:SVN仓库、需求管理、BUG跟踪、任务管理、在线论坛、网站空间、项目存储及完整的备份等。欢迎网友光临建立项目,开创自己的梦想。
地址:http://www.softdn.com http://www.softdn.cn
当你双击User2这项是既弹出对话框 或者 就会报错
再次谢谢
你单步调试,出现错误时候,你用CALL STACK看看错误位置就知道了
还是没有解决 我看到的是 __sbh_alloc_block(int 88) line 622 + 12 bytes
??
???....
但是在DEBUG时,弹出对话框后不做任何修改都出错了.????