您现在的位置:首页 >> 图形媒体 >> 图形媒体 >> 内容

Delphi中多个图像相互覆盖时实现无内容处点击穿透

时间:2011/9/3 15:00:32 点击:

  核心提示:在下图显示,窗口中有两个控件A和B,而B控件中间部分则被A控件挡住了。正常情况下挡住的部分我们用鼠标是点不到B控件的,但有时候我们是需要点到B控件划线部分时(可以想像这两个控件是透明的,只显示连线),...

在下图显示,窗口中有两个控件A和B,而B控件中间部分则被A控件挡住了。正常情况下挡住的部分我们用鼠标是点不到B控件的,但有时候我们是需要点到B控件划线部分时(可以想像这两个控件是透明的,只显示连线),可以在控件中实现如下方法:

600) this.width = 600;">

procedure CMHitTest(var Message: TCMHitTest); message CM_HITTEST;

procedure CMHitTest(var Message: TCMHitTest);
begin
  if Canvas.Pixels[Message.XPos, Message.YPos] <> clFuchsia then
    Message.Result := HTCLIENT 
  else
    Message.Result := HTNOWHERE;
end;

这个方法同时支持MouseMove事件,也就是说,如果鼠标不在连线位置时,是不会触发MouseMove事件的。

作者:overblue 来源:转载
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
本类推荐
  • 没有
本类固顶
  • 没有
  • 盒子文章(www.2ccc.com) © 2022 版权所有 All Rights Reserved.
  • 沪ICP备05001939号