Delphi:如何处理点击PageControl的空白区域?
发布时间:2020-12-15 04:34:44 所属栏目:大数据 来源:网络整理
导读:我正在使用Delphi 7. 我想对PageControl的空白区域上的单击(左)做出反应 – 在比所示的最后一个选项卡更深的区域上.我怎样才能做到这一点? 解决方法 您可以在PageControl的父控件处理单击. F.i.如果将PageControl放置在表单上,??则将为该指定区域调用表单的
我正在使用Delphi 7.
我想对PageControl的空白区域上的单击(左)做出反应 – 在比所示的最后一个选项卡更深的区域上.我怎样才能做到这一点? 解决方法
您可以在PageControl的父控件处理单击. F.i.如果将PageControl放置在表单上,??则将为该指定区域调用表单的“MouseDown”事件.原因是PageControl为该区域的命中测试消息返回HTTRANSPARENT,因此鼠标消息被定向到它下面的控件.
如果不行,您可以更改WM_NCHITTEST的处理方式,例如通过继承控件或派生控件: type TMyPageControl = class(TPageControl) protected procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST; end; procedure TMyPageControl.WMNCHitTest(var Message: TWMNCHitTest); begin inherited; if Message.Result = HTTRANSPARENT then Message.Result := HTCLIENT; end; 然后,控件的OnMouseDown事件将被触发.当然,你可以在修改消息的返回值之前测试该区域,这个例子只是为了说明它是如何工作的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |