delphi控件edit透明

aniugee 2011-04-25 06:51:24
网上搜过,也做过一些实验,试过WM_ERASEBKGND、WM_NCPAINT结果都不满意。有做过的朋友帮忙讲一下,谢谢!
...全文
1059 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunli_py 2011-07-29
  • 打赏
  • 举报
回复
我也在关注
lyhoo163 2011-07-29
  • 打赏
  • 举报
回复
关注。
曼尼叔叔 2011-07-29
  • 打赏
  • 举报
回复
自己写一个VCL吧
山东蓝鸟贵薪 2011-07-20
  • 打赏
  • 举报
回复
这也是一种方法,试试先
无条件为你 2011-07-20
  • 打赏
  • 举报
回复
可以实现。

你先将Edit放到新窗体form2上,然后在form1中的show事件中使用下面两行关键代码:

SetWindowLong(Form2.Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
SetLayeredWindowAttributes(Form2.Handle, clWhite, 255, LWA_COLORKEY);
form2.Show;

接下来,你要做的是把form2想办法与form1绑定到一起,使用户感觉好像只有一个form1。
你把form2设置成无标题无边框的。当个容器来用。

landixin 2011-07-19
  • 打赏
  • 举报
回复
之前没看到背景有图片条件。找到一个第三方控件tms。里面有个advedit控件,设置它的transparent为true就可以透明了,再把borderstyle属性改成bsNone可以去边框
youyidianmimang 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 landixin 的回复:]

首先将edit的borderstyle属性改成bsNone,然后设置color属性和form的color属性一致就行了
[/Quote]
如果有图像呢 并且还是gif的呢; 呵呵
landixin 2011-07-18
  • 打赏
  • 举报
回复
首先将edit的borderstyle属性改成bsNone,然后设置color属性和form的color属性一致就行了
tempxx 2011-07-02
  • 打赏
  • 举报
回复
请参见我的blog文章:http://blog.csdn.net/tempxx
DelphiTeacher 2011-05-16
  • 打赏
  • 举报
回复
有将父控件背景绘制到ABitmap上么?
我也用D2010,你把关键代码贴出来吧,我帮你看看。
aniugee 2011-05-16
  • 打赏
  • 举报
回复
请问楼上 这段代码在哪个版本下通过的。我用D2010测试,加上这段代码 背景是纯黑色的。
DelphiTeacher 2011-05-11
  • 打赏
  • 举报
回复
procedure CNCTLCOLOREDIT(var Message:TWMCtlColorEdit);message CN_CTLCOLOREDIT;
var
ABrush:TBrush;
ABitmap:TBitmap;
begin
Inherited;
SetBkMode(Message.ChildDC,TRANSPARENT);
....(省略)将父控件背景绘制到ABitmap上......
ABrush:=TBrush.Create;
ABrush.Bitmap:=ABitmap;
Message.Result:=ABrush.Handle;
end;

就可以了
aniugee 2011-05-08
  • 打赏
  • 举报
回复
如果单纯的绘制控件容易,难点在于怎么有光标和选中状态这些。想支持这些应该从TEidt继承,试了一些方法都不理想。
Frank.WU 2011-05-08
  • 打赏
  • 举报
回复
不能透明就考虑给 TEDIT 置个背景图。。。
远程Scada 2011-04-26
  • 打赏
  • 举报
回复
自绘控件吧,想做成什么样都可以。
imonsoft2011 2011-04-26
  • 打赏
  • 举报
回复
应该有个属性吧,找找控件的属性!
whisht 2011-04-26
  • 打赏
  • 举报
回复
自己做控件
[Quote=引用楼主 aniugee 的回复:]
网上搜过,也做过一些实验,试过WM_ERASEBKGND、WM_NCPAINT结果都不满意。有做过的朋友帮忙讲一下,谢谢!
[/Quote]
idecl 2011-04-26
  • 打赏
  • 举报
回复
自己写一个吧,具体可以查看地Tlabel的实现
aniugee 2011-04-25
  • 打赏
  • 举报
回复
就是在输入的时候,也可以把后面窗体上的背景透出来。网上下载的所谓透明EIDT控件,只做到边缘透明,输入文字的位置还是白色的。
浩南_哥 2011-04-25
  • 打赏
  • 举报
回复
你想要的效果,上个图片看看呗

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧