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

ilove8 2012-11-20 04:20:01
做个控件.
1)继承TEdit控件,功能该控件透明,呈现背景图的效果.
2)控件边框无
...全文
213 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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--无边框

5,927

社区成员

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

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