社区
C++ Builder
帖子详情
这个控件怎么来写?妈的这方面就不能象vc那样爽吗??
pp616
2002-07-04 04:30:24
兄弟需要写这个一个控件
要求1:可以做为别的空间的容器。
2:要有Transparent属性,可以显示它的容器的背景图。
ToolBar已经实现这个功能。但是放什么控件在上面都顶着头,很不爽。怎么去改?vcl又不支持多继承。看过了前面的帖子说可以用聚合来做。不过手头没有资料。哪位兄弟做过这方面的东西,或是有相关资料的就帮老弟我一把吧
...全文
22
22
打赏
收藏
这个控件怎么来写?妈的这方面就不能象vc那样爽吗??
兄弟需要写这个一个控件 要求1:可以做为别的空间的容器。 2:要有Transparent属性,可以显示它的容器的背景图。 ToolBar已经实现这个功能。但是放什么控件在上面都顶着头,很不爽。怎么去改?vcl又不支持多继承。看过了前面的帖子说可以用聚合来做。不过手头没有资料。哪位兄弟做过这方面的东西,或是有相关资料的就帮老弟我一把吧
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bcb_fans
2002-07-05
打赏
举报
回复
1、直接把一个TExtPanel放到Form上面,设置属性Transparent为True.
2、再把一个TImage控件也放到TForm上,给它指定图像
3、在Form的OnPaint事件中编码:
this->Canvas->StretchDraw(TRect(0,0,this->Width,this-
>Height),Image1->Picture->Bitmap);
就这么简单。
pp616
2002-07-05
打赏
举报
回复
我看到你的图了。但是怎么用啊。在我这不行啊。
我把Transparent设置成true还是不行啊??
bcb_fans
2002-07-05
打赏
举报
回复
已发了一幅截图,注意收.
bcb_fans
2002-07-05
打赏
举报
回复
那应该可以呀!!! 直接把TExtPanel的Transparent属性设置为True不就可以了.
要不我给你发一幅截图???
hansonhx
2002-07-05
打赏
举报
回复
@_@
pp616
2002-07-05
打赏
举报
回复
是啊。要是能看多重继承的话就简单了。可惜VCL没这血统
bcb_fans
2002-07-05
打赏
举报
回复
的确如此,得继续升级,不过看来难度好大!!!!!!
pp616
2002-07-05
打赏
举报
回复
我给窗体加背景是这么加的:
Graphics::TBitmap *Bitmap1 = new Graphics::TBitmap();
Bitmap1->LoadFromFile("c:\\sky.bmp");
Form1->Brush->Bitmap=Bitmap1;
并非onPaint事件中给窗体加背景。您的控件在这种情况下就无能为力了。
pp616
2002-07-05
打赏
举报
回复
哎??给分的那个让我填密码的框子怎么没了???
我按管理也没用。csdn又出问题了??
pp616
2002-07-05
打赏
举报
回复
谢谢 BCB_FANS(四大名捕之追杀令) & cker(〖烟波浩淼三千里、人鬼殊途五百年〗) !!
pp616
2002-07-05
打赏
举报
回复
啊。谢谢你了。问题解决了。该给你分了。
HearMe
2002-07-05
打赏
举报
回复
gz
bcb_fans
2002-07-05
打赏
举报
回复
To: pp616(傻小子)
嘿嘿,只采用一些技巧就可以实现你的要求了!!!!!!
Graphics::TBitmap *Bitmap1 = new Graphics::TBitmap();
Bitmap1->LoadFromFile("c:\\sky.bmp");
Form1->Brush->Bitmap=Bitmap1;
//添加语句,让控件重新采集背景图像
ExtPanel1->NeedRerenderBitmap=true;
我试过了,可以彻底透明了。
pp616
2002-07-04
打赏
举报
回复
to:BCB_FANS(四大名捕之追杀令)
你的那个控件如果在ExtPanel1上放ExtPanel1是可以的。
但是如果我的Form上有背景。我需要能放一个ExtPanel在Form上。它能让Form 的背景透国它显示出来。或是别的什么容器。并非只局限于在ExtPanel上放ExtPanel。
to:cker(〖烟波浩淼三千里、人鬼殊途五百年〗)
谢谢你的代码。不过我在bc6上编译。装上了。但是它没有透明啊。怎么让它透明?
烟波三千里人鬼五百年
2002-07-04
打赏
举报
回复
#include <vcl.h>
#pragma hdrstop
#include "TransContainer.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------
// ValidCtrCheck is used to assure that the components created do not have
// any pure virtual functions.
//
static inline void ValidCtrCheck(TTransContainer *)
{
new TTransContainer(NULL);
}
//---------------------------------------------------------------------------
__fastcall TTransContainer::TTransContainer(TComponent* Owner)
: TCustomControl(Owner)
{
Width = 180;
Height = 60;
}
//---------------------------------------------------------------------------
void __fastcall TTransContainer::CreateParams(TCreateParams& Params)
{
TCustomControl::CreateParams(Params);
Params.ExStyle += WS_EX_TRANSPARENT;
ControlStyle = ControlStyle >> csOpaque << csAcceptsControls;
}
//---------------------------------------------------------------------------
void __fastcall TTransContainer::SetBorder(bool value)
{
if (value != FBorder)
{
FBorder = value;
}
Invalidate();
}
//---------------------------------------------------------------------------
void __fastcall TTransContainer::Paint()
{
if ( FBorder || ComponentState.Contains(csDesigning))
{
Canvas->Brush->Color = clBtnShadow;
Canvas->FrameRect(ClientRect);
}
}
//---------------------------------------------------------------------------
namespace Transcontainer
{
void __fastcall PACKAGE Register()
{
TComponentClass classes[1] = {__classid(TTransContainer)};
RegisterComponents("CKER", classes, 0);
}
}
//---------------------------------------------------------------------------
烟波三千里人鬼五百年
2002-07-04
打赏
举报
回复
class PACKAGE TTransContainer : public TCustomControl
{
private:
bool FBorder;
void __fastcall SetBorder(bool value);
protected:
virtual void __fastcall Paint();
virtual void __fastcall CreateParams(TCreateParams& Params);
public:
__fastcall TTransContainer(TComponent* Owner);
__published:
__property bool Border ={ read = FBorder, write =SetBorder};
__property Visible;
__property Enabled;
__property Align;
__property OnClick;
__property OnMouseDown;
__property OnMouseMove;
__property OnMouseUp;
};
bcb_fans
2002-07-04
打赏
举报
回复
怎么意思??? 也许是我理解错了你的意思.
比如,有一个控件ExtPanel1,设置了背景图像,现在把ExtPanel2放到ExtPanel1上,那ExtPanel2显示"容器的背景图"是不是就是让ExtPanel1上的图像透过ExtPane2显示在ExtPanel2上面? 如果是这样,那TExtPanel可以达到要求,如果不是,请说出更详细的说明.
pp616
2002-07-04
打赏
举报
回复
收到了。问题是她还是不能显示容器的背景图呀。
bcb_fans
2002-07-04
打赏
举报
回复
发了,注意接。
alang_xy
2002-07-04
打赏
举报
回复
alang_yl@163.com
加载更多回复(2)
初学者必读:如何学习
VC
++和C++及其推荐书目和网站
本文转自博主: EbowTang 一,如何学习
VC
++ 1 ,
vc
的用处 我感觉下面一些领域比较适合...通过这个项目,我才真正体会到
VC
有多么强大,上百个线程同时工作,数据库并发访问,而且全部软件基于COM构造,这样高性能的大型
C++Builder的基本功能
无论是在
写
代码的过程,还是最后要编译成可执行文件,都需要有一个工具存在。这一工具一般称为编程集成环境(IDE)。之所以称为集成,是因为从
写
代码到最后软件的出炉,我们需要它的地方实在太多了,这里列出其中...
[Mac A]为什么国外程序员爱用 Mac?
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里。普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒。...从个人使用经验来看我想有下面几个原因: 1、Mac OS X 是基于 Unix 的。这...
我在CSDN参与的3000个帖子
2:100分急求,随机输出十个小
写
字母,但是,要求这十个字母不相同 3:求Sn=a+aa+aaa+…+aaa…a(n个a)之值 4:数组题 望高手帮忙! 5:呵呵,来推荐一下我的网站,本站提供大量当今流行的免费的音乐和免费电影,...
C++和
VC
++学习方法
C++和
VC
++学习方法 第一篇: 导航:第一篇 第二篇 第三篇 第四篇 第五篇 第六篇
VC
学习方法精髓
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章