社区
Delphi
帖子详情
如何将基于TWinControl的组件做成透明的?
MakeEverydayProgres
2003-10-16 08:04:18
RT
...全文
51
3
打赏
收藏
如何将基于TWinControl的组件做成透明的?
RT
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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平台已经
谈
组件
技术(一) 必备知识.
谈
组件
技术(一)------必备知识何谓
组件
技术?
组件
技术有什么作用?为什么要应用
组件
技术?如何应用
组件
技术?我们现在都知道什么?我们现在应该做什么?又能做什么?当这些问题缠绕在心头时,也许您自己也承认,不得不学一学
组件
技术了,其码要了解
组件
技术(
组件
技术本文以后将以
组件
代替)。那么现在问一问自己,你是如何看待
组件
的?你心目中的
组件
是一个什么样子呢?感觉很好说,也许每个编程的人员对组
谈
组件
技术(一) 必备知识. (转)
谈
组件
技术(一) 必备知识. (转)[@more@] 谈
组件
技术(一) ------必备知识 何谓
组件
技术?
组件
技术有什么作用?为什么要应用
组件
技术?如何应用
组件
技术?我们现在都知道什么?我们现在应该做什么?又能做什么?当...
Borland 基础与应用开发课程认证试题整理集
Borland 基础与应用开发课程认证试题整理集 2010年12月15日 Borland 基础与应用开发课程认证试题整理集 试题1 关于Delphi中产生的文件 编辑阶段: pas/单元文件,dpk/
组件
包文件,dpr/工程文件,dfm/窗体文件 编译阶段: dcu/单元编译文件,dcp/Delphi Compile package 连接阶段: ex...
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章