我有个树控件,假如结点为 A - 1
- 2
- 3
B - 4
- 5
- 6
C - 7
- 8叶结点(1到8)可以用鼠标在界面上点开,但是也可能别的程序发消息使之展开。当然别的程序发消息使之展开也就是用树空间的方法展开的。问题来了,当我发消息使之展开的话,(此时树控件状态是 A,C没展开,只有B展开了),然后当我点C结点想展开7,8的时候,发现花屏了,就算我用 CTreeCtrl::Invalidate()也没用。
- 2
- 3
B - 4
- 5
- 6
C - 7
- 8叶结点(1到8)可以用鼠标在界面上点开,但是也可能别的程序发消息使之展开。当然别的程序发消息使之展开也就是用树空间的方法展开的。问题来了,当我发消息使之展开的话,(此时树控件状态是 A,C没展开,只有B展开了),然后当我点C结点想展开7,8的时候,发现花屏了,就算我用 CTreeCtrl::Invalidate()也没用。
解决方案 »
- 急啊.....请问各位了....用ACM将数据压缩后该如何解压啊.....谁知道的说一下...谢谢各位了!~!~
- 关于在CDhtmldialog中ajax跨域的问题!!!
- CListView问题,下午就结
- MFC ODBC类跟ADO来访问DBF数据源,哪个更快一些?
- 怎么做一个上网的代理,能不能指点一下,高分
- vs.net2003和vc6.0能共存吗?
- 请大家帮我解释一下这段关于线程的代码,谢谢!
- 谁知道windows是怎样将鼠标点击消息转变为WM_COMMAND消息的?
- 对话框窗口为什么不能处理WM_KEYDOWN消息
- 一个外挂了很多dll的大project,能转化为一个acitvex控件吗?
- 关于DLL调用
- 现在软件注册要用到计算机的特征码?用什么特征的好呢?安全性高呢
hItem = ptCtrl->GetRootItem() ;
while (hItem)
{
strName = ptCtrl->GetItemText(hItem);
if(0 == strName.CompareNoCase(lpStrType))
{
ptCtrl->SetItemState(hItem,TVIS_EXPANDED,TVIS_EXPANDED);
hItem = ptCtrl->GetNextItem(hItem,TVGN_CHILD);
while(hItem)
{
strName = ptCtrl->GetItemText(hItem);
if(0 == strName.Find(lpStrName))
{
ptCtrl->SetItemState(hItem,LVIS_SELECTED, LVIS_SELECTED);
}
hItem = ptCtrl->GetNextItem(hItem,TVGN_NEXT);
}
}
hItem = ptCtrl->GetNextItem(hItem,TVGN_NEXT);
}