社区
Delphi
帖子详情
如何将基于TWinControl的组件做成透明的?
MakeEverydayProgres
2003-10-16 08:04:18
RT
...全文
74
3
打赏
收藏
如何将基于TWinControl的组件做成透明的?
RT
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
MakeEverydayProgres
2003-10-24
打赏
举报
回复
怎样将 TStaticText 透明啊,我没搞定
procedure TStaticTextTs.WMEraseBkgnd(var Message: TWmEraseBkgnd);
begin
inherited;
Message.Result := 1;
end;
procedure TStaticTextTs.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.ExStyle := Params.ExStyle or WS_EX_TRANSPARENT;
end;
解决马上结贴,先谢谢了
vargent77
2003-10-17
打赏
举报
回复
楼上答的挺好了,如果再介绍一下DRAWITEM里面的写法就好了,原码钟那段东西好多哦
pankun
2003-10-16
打赏
举报
回复
转:
控件透明
将一个FORM变成透明的实质性手段就是拦截CMEraseBkgnd消息。
unit Utransform; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm)
private { Private declarations }
public { Public declarations }
PROCEDURE CMEraseBkgnd(var Message:TWMEraseBkgnd);Message WM_ERASEBKGND;
end;
var Form1: TForm1;
implementation
{$R *.DFM}
PROCEDURE Tform1.CMEraseBkgnd(var Message:TWMEraseBkgnd);
BEGIN
brush.style:=bsClear;
Inherited;
END;
end.
//////////////////////////////////////
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Brush.Style := bsClear;
Form1.BorderStyle := bsNone
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Application.Terminate;
end;
/////////////////////////////////////////////
用透明的控件呗. 一般继承自TGraphicControl的
(就是那些没有handle属性, 不能有focus的控件, 如image)
都有Transparent属性. 对TWinControl类的控件, 要实现透明只要完成以下
三步基本上就成了.
1. override 它的CreateParams方法, exstyle 里加上WS_EX_TRANSPARENT.
2. 修改它的parent的window style, 去掉WS_CLIPCHILDREN.
3. 截获WM_ERASEBKGND, 什么都不做直接返回1.
一般有上面3步能成. 有些控件比如TPanel, 在它的paint中用了fillrect, 所以要实现透明的话还要override 它的paint方法, 自己画.
按钮透明需要进一步处理.
createparams里加上style := style or BS_OWNERDRAW;
然后在WM_DRAWITEM中自己画吧
谈
组件
技术(一)
何谓
组件
技术?
组件
技术有什么作用?为什么要应用
组件
技术?如何应用
组件
技术?我们现在都知道什么?我们现在应该做什么?又能做什么?当这些问题缠绕在心头时,也许您自己也承认,不得不学一学
组件
技术了,其码要了解
组件
技术(
组件
技术本文以后将以
组件
代替)。那么现在问一问自己,你是如何看待
组件
的?你心目中的
组件
是一个什么样子呢?感觉很好说,也许每个编程的人员对
组件
都有一个轮廓的概念,是的,
Win
dows平台已经...
谈
组件
技术(一) 必备知识.
谈
组件
技术(一)------必备知识何谓
组件
技术?
组件
技术有什么作用?为什么要应用
组件
技术?如何应用
组件
技术?我们现在都知道什么?我们现在应该做什么?又能做什么?当这些问题缠绕在心头时,也许您自己也承认,不得不学一学
组件
技术了,其码要了解
组件
技术(
组件
技术本文以后将以
组件
代替)。那么现在问一问自己,你是如何看待
组件
的?你心目中的
组件
是一个什么样子呢?感觉很好说,也许每个编程的人员对组
谈
组件
技术(一)
何谓
组件
技术?
组件
技术有什么作用?为什么要应用
组件
技术?如何应用
组件
技术?我们现在都知道什么?我们现在应该做什么?又能做什么?当这些问题缠绕在心头时,也许您自己也承认,不得不学一学
组件
技术了,其码要了解
组件
技术(
组件
技术本文以后将以
组件
代替)。那么现在问一问自己,你是如何看待
组件
的?你心目中的
组件
是一个什么样子呢?感觉很好说,也许每个编程的人员对
组件
都有一个轮廓的概念,是的,
Win
dows平台已经
Delphi中实现
透明
度可控PANEL
组件
Delphi作为一种高效的可视化编程语言,其
组件
化的开发模式让开发者能够快速构建出复杂的界面。在众多控件之中,TPanel控件扮演着不可或缺的角色,它为界面布局提供了基础支持。标准用法中,开发者通过设置TPanel的属性来定制面板的外观和行为,包括边框、颜色、尺寸等。其中,最为常用的属性包括BevelInnerBevelOuter和Brush等,这些属性帮助定义了面板的视觉样式和布局特性。
谈
组件
技术(一) 必备知识. (转)
谈
组件
技术(一) 必备知识. (转)[@more@] 谈
组件
技术(一) ------必备知识 何谓
组件
技术?
组件
技术有什么作用?为什么要应用
组件
技术?如何应用
组件
技术?我们现在都知道什么?我们现在应该做什么?又能做什么?当...
Delphi
5,927
社区成员
262,931
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章