关于panel 透明的问题。。。

mdejtod 2009-04-25 05:54:42
RT。。。
重写了 CreateParams事件
procedure CreateParams(var Params: TCreateParams);
begin
params.ExStyle:=params.ExStyle+ws_ex_transparent
end;
拦截了WM_EraseBkgnd 消息,设置了父控件的 control style
是可以实现 panel透明,但是在上面放一个image ,移动image 控件时,背景无法擦除。只有让窗体重画才能刷新,。。有没有什么别的办法可以让它自己刷新,而不用手动刷新窗体
也加了 WM_NCPAINT,WMWindowPosChanging,WMWindowPosChanged 等消息的拦截,在这些事件里重画,在设计期效果不错,移动panel时,可以看到被panel 挡住的其它控件,
但就是无法刷新它自己,找了好多代码,也都是这种情况!!!
...全文
152 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
天鸽 2009-04-27
  • 打赏
  • 举报
回复
等待高人
space_ngc1275 2009-04-27
  • 打赏
  • 举报
回复
既然是窗体控件,那没有句柄,给以Invalidate个那个父控件,不知道对不。拦截WM_EraseBkgnd 消息,当然不能自己重绘背景,消息已经拦截怎么自动刷新,子能手动,子控件移动刷现,那么Invalidate给父控件吧
zshsuming 2009-04-27
  • 打赏
  • 举报
回复
很想知道``
willflyz 2009-04-27
  • 打赏
  • 举报
回复
关注.
mdejtod 2009-04-27
  • 打赏
  • 举报
回复
顶起来
mdejtod 2009-04-26
  • 打赏
  • 举报
回复
PANEL上要放好多图片的。。。。
sanguomi 2009-04-26
  • 打赏
  • 举报
回复
自己用画布画,不用IMAGE
sanguomi 2009-04-26
  • 打赏
  • 举报
回复
这种自己写个控件比较好
ou630j 2009-04-26
  • 打赏
  • 举报
回复
帮顶

5,392

社区成员

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

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