• 主页
  • 招聘
  • 语言基础/算法/系统设计
  • 数据库相关
  • 图形处理/多媒体
  • 网络通信/分布式开发
  • VCL组件开发及应用
  • Windows SDK/API

Edit控件让的背景和Parent的背景一致

ilove8 2012-11-20 04:20:01
做个控件.
1)继承TEdit控件,功能该控件透明,呈现背景图的效果.
2)控件边框无
...全文
132 点赞 收藏 5
写回复
5 条回复
lqfcu2 2012年11月21日
procedure TSkinEdit.DrawParentImage(Control: TControl; DC: HDC);
var
  SaveIndex: Integer;
  P: TPoint;
begin
  if Control.Parent = nil then
    Exit;
  SaveIndex := SaveDC(DC);
  GetViewportOrgEx(DC, P);

  SetViewportOrgEx(DC, P.X - Control.Left, P.Y - Control.Top, nil);
  IntersectClipRect(DC, 0, 0, Control.Parent.ClientWidth, Control.Parent.ClientHeight);

  try
    Control.Parent.Perform(WM_EraseBkgnd, DC, 0);
    Control.Parent.Perform(WM_PrintClient, DC, prf_Client);
  except
  end;
  RestoreDC(DC, SaveIndex);
end;
通过此方法先把控件背景画到自己的DC里,然后自绘EDIT的背景,有很多三方控件支持透明的,看下它们的实现代码就知道原理了
回复 点赞
hsfzxjy 2012年11月20日
透明?设置Alphablend属性
回复 点赞
feiba7288 2012年11月20日
http://delphi.cjcsoft.net/viewthread.php?tid=43166 这个好
回复 点赞
-HelloWorld- 2012年11月20日
回复 点赞
我看见佛 2012年11月20日
嘻嘻,我来说最简单的第2个吧。borderStyle=bsNone--无边框
回复 点赞
发动态
发帖子
Delphi
创建于2007-08-02

1478

社区成员

26.2w+

社区内容

Delphi 开发及应用
社区公告
暂无公告