2024年4月29日发(作者:)
屏蔽右键菜单
在很多情况下我们也许想把某些控件的默认右键菜单屏蔽掉。
屏蔽控件右键菜单有很多种方法,现在就介绍我知道的其中四种。
在介绍之前,先让我们看一下下面这段代码,这段代码是VCL库中TControl对象的一
段代码,从这段代码我们可以看出右键菜单的弹出事件都写在弹出菜单消息里面。
private
procedureWMContextMenu(varMessage:TWMContextMenu);message
WM_CONTEXTMENU;
…
extMenu(varMessage:TWMContextMenu);
var
Pt,Temp:TPoint;
Handled:Boolean;
PopupMenu:TPopupMenu;
begin
<>0thenExit;
ifcsDesigninginComponentStatethenExit;
Pt:=SmallPointToPoint();
ifPt.X<0then
Temp:=Pt
else
begin
Temp:=ScreenToClient(Pt);
ifnotPtInRect(ClientRect,Temp)then
begin
inherited;
Exit;
end;
end;
Handled:=False;
{*调用OnContextPopup}
DoContextPopup(Temp,Handled);
:=Ord(Handled);
ifHandledthenExit;
PopupMenu:=GetPopupMenu;
{*弹出自定义菜单}
if(PopupMenu<>nil)pupthen
begin
SendCancelMode(nil);
omponent:=Self;
发布评论