一个快让我疯掉的问题:为什么在ControlBar中动态建立的TreeCtrl控件不是窗口???

sungp5211 2003-10-20 09:02:56
我在ControlBar中动态建立了一个自定义的TreeCtrl控件,代码如下:
m_wndSettingTree.Create(WS_VISIBLE | WS_TABSTOP | WS_CHILD | WS_BORDER | TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS,CRect(0, 0, 0, 0), &m_wndSettingBar, 100);
然后插入数据:
HTREEITEM hPA =m_wndSettingTree.InsertItem(TVIF_HANDLE | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT,logo,i,i,0,0,0,NULL,TVI_SORT);
m_wndSettingTree.InsertItem(TVIF_HANDLE | TVIF_TEXT,_T("UpStream"),-1,-1,0,0,0,hPA, NULL);
我在void CSettingTreeCtrl::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult)下写了如下代码:
TV_DISPINFO *pTVDI = (TV_DISPINFO *)pNMHDR;
String s=this->GetItemText(pTVDI->item.hItem);
可是在调试中程序出错,我跟踪了一下,是ASSERT(::IsWindow(m_hWnd));的错误,这是不是说TreeCtrl不是窗口呢?我该如何才能调试通过??
...全文
29 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sungp5211 2003-10-23
  • 打赏
  • 举报
回复
没人知道吗?
wuxfBrave 2003-10-22
  • 打赏
  • 举报
回复
试试处理OnLButtonDown消息看看,我用NM_DCLICK也没取到文本,但是也没有你这种错误
hdqqq 2003-10-22
  • 打赏
  • 举报
回复
这种情况说明窗口创建失败,你铁定没有判断Create的返回结果.
sungp5211 2003-10-21
  • 打赏
  • 举报
回复
自己up,没有人能够解决吗?
sungp5211 2003-10-21
  • 打赏
  • 举报
回复
我用以下语句来创建:
if (!m_wndSettingTree.Create(WS_VISIBLE | WS_TABSTOP | WS_CHILD | WS_BORDER
| TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS,
CRect(0, 0, 0, 0), &m_wndSettingBar, 100))
{
TRACE0("Failed to create instant bar child\n");
return -1; // fail to create
}
没有错误,我在屏幕上也能看到,只是在OnClick的时候才会出现问题。
wuxfBrave 2003-10-21
  • 打赏
  • 举报
回复
说明m_wndSettingTree.Create(WS_VISIBLE | WS_TABSTOP | WS_CHILD | WS_BORDER | TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS,CRect(0, 0, 0, 0), &m_wndSettingBar, 100);创建失败,可以用GetLastError()看看错误码
,然后再确定问题
sungp5211 2003-10-21
  • 打赏
  • 举报
回复
接着up
popyyb 2003-10-20
  • 打赏
  • 举报
回复
mark & up

15,980

社区成员

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

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