终于在TreeView里加进了背景!!!

COKING 2003-01-25 10:39:39
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Graphics::TBitmap *bmp;
TWndMethod ms;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
bmp=new Graphics::TBitmap();
bmp->LoadFromFile("E:\\Gif\\071_03.BMP");
TV->Canvas->Brush->Bitmap=bmp;
ms=TV->WindowProc;
TV->WindowProc=proc;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::proc(TMessage &msg)
{
if(msg.Msg==WM_ERASEBKGND) return;
if(msg.Msg==WM_PAINT)
{
TRect ARect=TV->ClientRect;
int W=ARect.Width();
int H=ARect.Height();

HDC memdc=CreateCompatibleDC(TV->Canvas->Handle);
HBITMAP membmp=CreateCompatibleBitmap(TV->Canvas->Handle,W,H);
SelectObject(memdc,membmp);
ms(msg);
BitBlt(memdc,0,0,W,H,TV->Canvas->Handle,0,0,SRCCOPY);

HDC maskdc=CreateCompatibleDC(TV->Canvas->Handle);
HBITMAP maskbmp=CreateBitmap(W,H,1,1,NULL);
SelectObject(maskdc,maskbmp);
BitBlt(maskdc,0,0,W,H,memdc,0,0,SRCCOPY);

TV->Canvas->FillRect(ARect);

SetBkColor(memdc,RGB(0,0,0));
SetTextColor(memdc,RGB(255,255,255));
BitBlt(memdc,0,0,W,H,maskdc,0,0,SRCAND);

SetBkColor(TV->Canvas->Handle,RGB(255,255,255));
SetTextColor(TV->Canvas->Handle,RGB(0,0,0));

BitBlt(TV->Canvas->Handle,0,0,W,H,maskdc,0,0,SRCAND);
BitBlt(TV->Canvas->Handle,0,0,W,H,memdc,0,0,SRCPAINT);

DeleteObject(memdc);
DeleteObject(membmp);
DeleteObject(maskdc);
DeleteObject(maskbmp);
}
else
ms(msg);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
delete bmp;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TVExpanded(TObject *Sender, TTreeNode *Node)
{
TV->Repaint();
}
//---------------------------------------------------------------------------
...全文
24 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sncel 2003-01-27
这个效果好像不太行吧。。。。。。
回复
Behard 2003-01-27
现在都是这样的了
回复
COKING 2003-01-26
Collapsed 再 Repaint();
回复
一个“优秀”人民警察的工作日志(转载)



'''
(0 0)
+-----oOO----(_)------------+
| |
| 快来看!! |
| |
| |
+------------------oOO------+
|__|__|
|| ||
ooO Ooo

回复

3月17日
今天好不容易有一个天休假,正躺在沙发上看毛片儿。忽然接到了队长的七七四十九个追魂CALL,说有重大的刑事案情要找我分析。我二话没说,揣上2000块钱就去了他家。果然没被我猜错,又是三缺一,不同的是今天局长也来了,看来是我表现的时候了。一轮混战之后,我一下子输了一千八。一千去了局长那儿,八百去了队长哪儿。我挺开心的,看来升副队的事儿有着落了。
3月24日
上周输了一千八,今儿个怎么也得捞回来点儿。于是我去队长那儿,悄悄的说:“今晚去踩点儿吧”。队长没说话,但表情严肃。不过下午他布置工作时,把我编进了扫黄组,跟他一起。晚上行动时我们去了八个法廊、三间舞厅、两个夜总会。辛苦了一晚,总算收了个一千五,就当回本吧。今儿个队长挺仁慈的,只拿了三千。看把那些小姐高兴的,一个劲儿的说队长体贴群众。临走时我和队长还各找了
一个小姐干了一炮。事后队长批评了我:“1、干完总不给小费,小姐也是人,也要吃饭的,人家也不容易啊。要向我学习,给个十块八块意思意思也行啊。2、操B总不戴套,这会影响到国家的计划生育政策的,亏你还是个警察。”我虚心的接受了队长的批评,答应下次改正。
3月31日
今天儿子把我的手枪拿到学校去玩儿了。回来我把他臭骂了一顿。我对他说:“每次拿别人东西的时候要经过别人的同意,知道吗?”儿子知错了,问我能不能带他去打枪。我爽快的答应了他,说下个星期问局里借一支长枪带他去打鸟。(看来我还是个好父亲,对下一代的教育问题还是有一手的)
4月7日
今天局里说要自力更生,开发第二产业。命令我带三个人把上个月收缴回来的30台DVD和两箱手机买掉。操!这苦差使怎么回落到我的头上来。还好我动了动脑筋,这样五百大圆又进了我的口袋。
4月14日
今天开车闯了红灯,竟然有个交警把我给拦了下来。一看他就是刚从警校毕业的傻小子。我下了车,还没等他说话,我迎上去就骂开了:“我X你吗的,瞎了眼了。这是警车你看不见啊,你是那个局的,还想不想混了?这招挺管用,这小子被我骂的一楞一楞的,一个劲儿的跟我道歉。我心想这还差不多。
4月21日
今天上头又来文件了,还是老三样---扫黄打飞。不行,我得赶快告诉哥们儿傻B强。上次就忘记告诉他,心里挺内疚的。这回让他和他的兄弟门小心点儿,这几天少惹事儿,不然我也罩不住他。这上头也太闷了吧还是这套,无聊!哦,对了还有九哥的地下赌场和“王妈妈”那儿也得支一声,叫他们停两天吧。
4月28日
这个月底真是好日子。我即被评为了先进,又升了副对。在表彰大会上,我除了说了感谢领导关心之类的话之外。还说了几句让其他民警同志群情激昂的话。我说:“身为一个优秀的人民警察,要时时刻刻的吧人民群众的利益放在第一位。我能做的到,你们也一样能做的到。”完毕,台下掌声如雷不绝于耳啊!今天的感觉爽极了。哦,今晚别忘了吧局长和队长请到大富豪去汇报今后的工作计划。看来我以后真是“钱”途一片光明了..................
回复
ccrun.com 2003-01-26
当TreeView控件Collapsed的时候,背景有错位现象??
回复
ccrun.com 2003-01-26
学习。另外,cker有更好一些的方法吗?
回复
ffww 2003-01-26
蹭分。
回复
这个做法大概是基于MFC的hacking。。。
我觉得这样反复mask ,blt,重画性能不太好,TV显示闪烁会严重。。。

回复
还有头文件没有给出
回复
shclhs 2003-01-25
GZ
回复
lbg 2003-01-25
收藏先!!!!!!
回复
相关推荐
发帖
茶馆
创建于2007-08-02

529

社区成员

C++ Builder 茶馆
申请成为版主
帖子事件
创建了帖子
2003-01-25 10:39
社区公告
暂无公告