怎么给TreeView加背景图?

cdws222 2002-08-16 07:55:53
如题
...全文
64 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
sujor 2002-08-19
  • 打赏
  • 举报
回复
up
bcboy 2002-08-19
  • 打赏
  • 举报
回复
up
Smith_79 2002-08-19
  • 打赏
  • 举报
回复
我也想知道怎么做,大家应该继续讨论呀!
huzhangyou 2002-08-18
  • 打赏
  • 举报
回复
灌水中............................................
lw_yx 2002-08-18
  • 打赏
  • 举报
回复
关注!
cdws222 2002-08-18
  • 打赏
  • 举报
回复
唉,大家再讨论讨论嘛!
coolpony 2002-08-17
  • 打赏
  • 举报
回复
学习。。
我觉得cker说的有道理。。
我实现的也是这样。。
可以考虑用别的组件
xiaoguoru 2002-08-17
  • 打赏
  • 举报
回复
学习!!!
cdws222 2002-08-17
  • 打赏
  • 举报
回复
就是就是呀,所以我才又提了出来
781014 2002-08-16
  • 打赏
  • 举报
回复
耙子 2002-08-16
  • 打赏
  • 举报
回复
gz,
这个问题很早就有人提出过,但没有结果。
很多方法都是一点做出来一展开或者收缩分支,就乱了
大大怪老张 2002-08-16
  • 打赏
  • 举报
回复
学习
Bird1945 2002-08-16
  • 打赏
  • 举报
回复
关注
我不懂电脑 2002-08-16
  • 打赏
  • 举报
回复
你可以看看bcb自己带的例子很详细具体。
bcb_fans 2002-08-16
  • 打赏
  • 举报
回复
呵呵,讨论得挺热闹嘛. 不过好像光实现TreeViewCustomDraw()是没有任何实用价值的, 因为如果项目很多的话,一滚滚动条,整个画面一片狼籍....
gfh21cn 2002-08-16
  • 打赏
  • 举报
回复
cker(〖烟波浩淼三千里、人鬼殊途五百年〗)
你这是用图片填充客户区域。
  • 打赏
  • 举报
回复
void __fastcall TFormMain::TreeViewCustomDraw(TCustomTreeView *Sender,
const TRect &ARect, bool &DefaultDraw)
{
/*
Graphics::TBitmap* Bitmap = new Graphics::TBitmap;
Bitmap->LoadFromResourceName((int)HInstance,"TREEBITMAP");

if(Bitmap)
{
Sender->Canvas->Brush->Bitmap = Bitmap;
Sender->Canvas->FillRect(Sender->ClientRect);
Sender->Canvas->Brush->Bitmap = NULL;
// TreeView_SetBkColor(Sender->Handle,CLR_NONE);
SetBkMode(Sender->Canvas->Handle,TRANSPARENT);
// SetBkColor(Sender->Handle,CLR_NONE); //将文字设为透明
}
if(Bitmap) delete Bitmap;
*/
}


用brush画更好....:)

不过文字背景不透明...:)
需要subclass。。。。
cdws222 2002-08-16
  • 打赏
  • 举报
回复
BCB的例子好像太差了吧
sinmin 2002-08-16
  • 打赏
  • 举报
回复
考虑几个事件:
OnCustomDraw
OnCustomDrawItem
OnAdvancedCustomDraw
OnAdvancedCustomDrawItem
你一定会解决这个问题的.
注意在画Item的时候,要用透明的画刷或者画笔

如下所示基本上完成了你的要求, 但还有问题.

void __fastcall TForm1::TreeView1AdvancedCustomDraw(
TCustomTreeView *Sender, const TRect &ARect, TCustomDrawStage Stage,
bool &DefaultDraw)
{
Sender->Canvas->StretchDraw(ARect, Image1->Picture->Bitmap);
}
jishiping 2002-08-16
  • 打赏
  • 举报
回复
在OnCustomDraw事件里画:
void __fastcall TForm1::TreeView1CustomDraw(TCustomTreeView *Sender,
const TRect &ARect, bool &DefaultDraw)
{
Graphics::TBitmap* Bitmap;

Bitmap = new Graphics::TBitmap;
Bitmap->LoadFromFile("C:\\ePaper1.bmp");
Sender->Canvas->Draw(0, 0, Bitmap);
delete Bitmap;
}
加载更多回复(3)

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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