一个TreeView的问题。给TTreeView或是VC的SysTreeView32加上背景图。在拖动滚动条时控件背景就一塌糊涂。找了好久没找到解决方法。希望有
pp616 2003-10-09 08:14:50 我的代码
void __fastcall TForm1::TreeView1CustomDraw(TCustomTreeView *Sender,
const TRect &ARect, bool &DefaultDraw)
{
if(!ImgBk->Empty)//Graphics::TBitmap *ImgBk为一个背景bmp
{
TreeView1->Canvas->Brush->Bitmap=ImgBk;
TreeView1->Canvas->FillRect(ARect);
}
}
void __fastcall TForm1::TreeView1CustomDrawItem(TCustomTreeView *Sender,
TTreeNode *Node, TCustomDrawState State, bool &DefaultDraw)
{
.....
//代码比较多,为哥们看起来方便我就不贴了。
}
基本上和Examples\CustomDraw里的代码大同小异。
解决了闪烁和其他一些问题。但是就是在节点很多的时候拖动ScrollBar的时候背景图就一塌糊涂了。只有TreeView再次收到WM_PAINT的时候才会重画背景。好象网络蚂蚁和网际快车都解决了这问题。请知道答案的兄弟帮帮忙。万分感谢!!