断点调试是 { ASSERT(::IsWindow(m_hWnd));//怎么解决?

mirroatl64 2012-12-06 06:28:36

CtreeCtrlEx m_tree;
TREE_STRUCT mpStruct;
HTREEITEM root,root1;



CTreeView类就这俩函数
BOOL CDeviceTreeView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: 在此添加专用代码和/或调用基类
cs.style|=TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS|TVS_SHOWSELALWAYS|TVS_NOTOOLTIPS;
return CTreeView::PreCreateWindow(cs);
}

void CDeviceTreeView::OnInitialUpdate()
{
CTreeView::OnInitialUpdate();
root1=m_tree.InsertItemEx(mpStruct);//在对话框程序使用重写的树控件函数可以创建,在这
root=m_tree.InsertItemEx(mpStruct,root1);//就报错误
}




//错误是tempTreeItem = InsertItem(str,lparent,lpFont);返回tempTreeItem是空值。。。

HTREEITEM CtreeCtrlEx::InsertItemEx(TREE_STRUCT pStruct,HTREEITEM lparent,HTREEITEM lpFont )//插入项
{
HTREEITEM tempTreeItem;
CString str;
str.Format("%s(%d人)",pStruct.s_ItemStr,pStruct.s_PeopleNum);
tempTreeItem = InsertItem(str,lparent,lpFont);
m_mapTree.insert(pair<HTREEITEM,TREE_STRUCT>(tempTreeItem,pStruct));
return tempTreeItem;

}



//断点调试是
{ ASSERT(::IsWindow(m_hWnd)); return InsertItem(TVIF_TEXT, lpszItem, 0, 0, 0, 0, 0, hParent, hInsertAfter); }
//_AFXCMN_INLINE BOOL CTreeCtrl::DeleteItem(HTREEITEM hItem)
...全文
1381 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
violinacl 2014-11-19
  • 打赏
  • 举报
回复
引用 5 楼 u013743168 的回复:
[quote=引用 4 楼 xianglitian 的回复:] 您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
版主你说谎。都过去一年零3个月啦。。。[/quote]目测会更久
清风云淡1991 2014-06-17
  • 打赏
  • 举报
回复
引用 5 楼 u013743168 的回复:
[quote=引用 4 楼 xianglitian 的回复:] 您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
版主你说谎。都过去一年零3个月啦。。。[/quote] 哈哈
灯火下的行人 2014-06-11
  • 打赏
  • 举报
回复
引用 4 楼 xianglitian 的回复:
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
版主你说谎。都过去一年零3个月啦。。。
向立天 2013-03-30
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
roger_ding 2012-12-06
  • 打赏
  • 举报
回复
ASSERT(::IsWindow(m_hWnd));出错的意思是CtreeCtrlEx的窗口句柄m_hWnd不是有效的窗口句柄,也就是说CtreeCtrlEx要么已经被销毁,要么还没有创建 我看到你是在void CDeviceTreeView::OnInitialUpdate()里面调用InsertItemEx,应该是CtreeCtrlEx还没有创建,所以会出错,如果要插入内容,必须在更后面的位置执行,即CtreeCtrlEx创建以后
傻X 2012-12-06
  • 打赏
  • 举报
回复
错误应是句柄不存在导致的。 callstack返过去找找原因
oyljerry 2012-12-06
  • 打赏
  • 举报
回复
InsertItem() 后查看错误信息,GetLastError

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧