想要使TMemo,TPageControl组件做成透明,使得该组件上显示的内容,可以透明的显示在组件下面的图片上.
高手执教,Thanks!
高手执教,Thanks!
解决方案 »
- 想做一个医院客户关系管理的软件,请教各位谁有经验?
- 如何设置OutLookBarpro的控件背景色???
- 11日晨日本巡逻机发现钓鱼岛的灯塔昨夜被炸!
- 在线等,关于线程内动态创造Session,Database,Storedproc的问题,程序能在正常情况下执行,但是很好地处理网络断线的问题?
- 如何像word一样将图文混排的内容保存到access数据库。
- ADOQuery真的让人迷惑????
- 用TMEMORYSTREAM來讀圖片顯示不出來,你有解決的方法嗎?
- 请问用Delphi作的CGI程序和用ASP作的速度比较起来哪一个更快一些?
- idhttp.get不了验证码
- 我写了个文本编辑器,但与文本文件关联时出了问题!
- 数据库记录删除问题,请帮忙
- E2003 Undeclared identifier: 'FillChar'
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TTransMemo = class(TMemo)
private
{ Private declarations }
FBitmap : TBitmap;
protected
{ Protected declarations }
Constructor Create (AnOwner : TComponent); overRide;
Destructor Destroy; Override; Procedure DefaultHandler (Var Message); Override;
Procedure WM_EraseBkGnd(Var Msg : TWMEraseBkGnd); Message WM_EraseBkGnd;
Procedure SetBitmap(NewBitmap : TBitmap);
public
{ Public declarations }
published
{ Published declarations }
Property Bitmap : TBitmap Read fBitmap Write SetBitmap;
end;procedure Register;implementationConstructor TTransMemo.Create (AnOwner : TComponent);Begin
Inherited Create(AnOwner);
FBitmap := TBitmap.Create;
Color := clNone; // Setting to clWindow causes the strange behavior we are all familiar with.
End;Destructor TTransMemo.Destroy;Begin
fBitmap.Free;
Inherited Destroy;
End;Procedure TTransMemo.SetBitmap(NewBitmap : TBitmap);Begin
FBitmap.Assign(NewBitmap);
End;// The only real place to tie into the VCL for
// tranparnent fonts...Procedure TTransMemo.DefaultHandler (Var Message);Begin
Inherited DefaultHandler(Message);
With TMessage(Message) Do
Begin
Case Msg Of
cn_CTLCOLORMSGBOX..cn_CTLCOLORSTATIC:
begin
SetBkMode(WParam, Transparent);
end;
End;
End;
End;Procedure TTransMemo.WM_EraseBkGnd(Var Msg : TWMEraseBkGnd);Var
Canvas : TCanvas;Begin
Inherited;
// Draw your own custom background here.
Canvas := TCanvas.Create;
Canvas.Handle := msg.DC;
Canvas.Draw(0,0,fBitmap);
Canvas.Free;
End;procedure Register;
begin
RegisterComponents('Samples', [TTransMemo]);
end;end.
http://topic.csdn.net/t/20041210/19/3634904.html
先把需要显示遮挡的区域抓个图,然后进行alpha处理,然后作为自己窗口背景,看上去,窗口就透明到桌面上了。
1,该透明控件获得焦点时,变得不透明了,需屏蔽获得焦点;
2,最大得问题是,当该控件ReadOnly=true时,就变得不透明了,不知道为什么?
楼上,你那个alpha处理,是什么意思啊,我不懂,高手讲讲吧^_^?
1,该透明控件获得焦点时,变得不透明了,需屏蔽获得焦点;
2,最大得问题是,当该控件ReadOnly=true时,就变得不透明了,不知道为什么?
楼上,你那个alpha处理,是什么意思啊,我不懂,高手讲讲吧^_^?
=============================================
你才paint消息中也加入透明处理代码看看?
或者在获得焦点的时候也处理一下透明!