将SDI窗口切分成左右两部分,左边放TreeCtrl,右边放ListCtrl,树型目录是读取文件生成.
想在生成树型目录的时候根据叶结点的数目动态地向ListCtrl中填加行(行数目和叶节点数目相同),,我试过在生成树型目录的时候向ListCtrl中填加行,试过两种方法:一.发送自定义消息给右边的View,在消息处理中填加;二.在生成树型目录的时候取得右边View的指针,然后在ListCtrl中填加一项.可是编译没错,执行就错了,郁闷中..
想在生成树型目录的时候根据叶结点的数目动态地向ListCtrl中填加行(行数目和叶节点数目相同),,我试过在生成树型目录的时候向ListCtrl中填加行,试过两种方法:一.发送自定义消息给右边的View,在消息处理中填加;二.在生成树型目录的时候取得右边View的指针,然后在ListCtrl中填加一项.可是编译没错,执行就错了,郁闷中..
解决方案 »
- 为什么这个程序的图标不能改变
- 大家帮个忙指点一下
- 怎样用ActiveX 控件做浏览本机目录的对话框!
- 同样两个点,主动连接和被动连接后在传输速度上是否会存在差异
- 高分求教VC画的图保存为emf矢量图的方法.其它什么模式的矢量图也可以?谢谢
- 我要判断当前的输入法是否为英文输入状态应该怎么判断?
- _RecordsetPtr 的Update问题!
- vc中如何创建Access数据库?
- ADO连接数据库时的数据类型问题。
- 潜入汇编时的几个错误,大家帮我看看啊。
- SDI窗体分割后两视图(CFormView)之间TreeCtrl和ListCtrl通信
- 哪位好心人能否给我一个特别全的winapi手册 网上找了一夜 全部都是不完全的 谢谢了
m_ListCtrl.InsertColumn(0,_T("ID"),LVCFMT_LEFT,50,0);
m_ListCtrl.InsertColumn(1,_T("Catalog"),LVCFMT_LEFT,120,1);
m_ListCtrl.InsertColumn(2,_T("Command Name"),LVCFMT_LEFT,165,2);
//m_ListCtrl.InsertColum(3,_T("Parameters"),LVCFMT_LEFT,67,3);
m_ListCtrl.InsertColumn(3,_T("Operator"),LVCFMT_LEFT,80,3);
m_ListCtrl.InsertColumn(4,_T("Value"),LVCFMT_LEFT,180,4);
m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
int nIndex = m_ListCtrl.GetItemCount();
m_ListCtrl.InsertItem(nIndex,_T("文件名"));
m_ListCtrl.SetItemText(nIndex, 1, _T("类型"));
m_ListCtrl.SetItemText(nIndex, 2,_T("大小"));
m_ListCtrl.SetItemText(nIndex, 3,_T("创建时间"));
m_ListCtrl.SetItemText(nIndex, 4,_T("最后修改时间"));
stradoName = VariantToCString(m_pTreeRecordset->GetCollect("Name"));
stradoparent = VariantToCString(m_pTreeRecordset->GetCollect("ParentItem"));
if (pView->GetSafeHwnd())
{int index = pView->m_ctrlList.GetItemCount();
::SendMessage(pView->GetSafeHwnd(),WM_ADDITEM,(WPARAM)&stradoName,(LPARAM)&stradoparent);
pView->m_ctrlList.InsertItem(index,stradoparent);
}但是执行到int index = pView->m_ctrlList.GetItemCount();这步就出现执行时错误Debug Assertion Failed第二种方法取得List所在视图的指针再插入,代码如下:
stradoName = VariantToCString(m_pTreeRecordset->GetCollect("Name"));
stradoparent = VariantToCString(m_pTreeRecordset->GetCollect("ParentItem"));
if (pView->GetSafeHwnd())
{int index = pView->m_ctrlList.GetItemCount();
// ::SendMessage(pView->GetSafeHwnd(),WM_ADDITEM,(WPARAM)&stradoName,(LPARAM)&stradoparent);
pView->m_ctrlList.InsertItem(index,stradoparent);
}
错误也是Debug Assertion!
在右边ListCtrl所在视图中加入自定义消息WM_ADDITEM的消息处理,添加插入ListCtrl中一行的代码,默认都插在最后一行的后面.
你如何去填加喃?