在Delphi 7中是否有办法查明弹出菜单是否可见(显示在屏幕上),因为它缺少可见属性。
答案 0 :(得分:4)
您可以通过在OnPopup事件中设置它来制作自己的旗帜。问题是知道popupmenu何时关闭。 Peter Below有解决方案。
但我问我为什么要这个?也许有更好的方法来解决潜在的问题。
答案 1 :(得分:2)
这似乎有点简单(我使用Delphi 2007):
在WM_CONTEXTMENU消息处理程序中,在调用继承的处理程序之前,将显示弹出菜单,您可以设置标记。在调用inherited后,弹出菜单已关闭,重置您的标志。
procedure TForm1.WMContextMenu(var Message: TWMContextMenu);
begin
FPopupActive := True;
try
OutputDebugString(PChar(Format('popup opening', [])));
inherited;
finally
FPopupActive := False;
OutputDebugString(PChar(Format('popup closed', [])));
end;
end;