如何在Delphi中重新绘制Tpopmenu?

时间:2012-11-07 09:27:24

标签: delphi popupmenu

当弹出菜单已经弹出时,我需要更改Delphi 7中TMenuItem的文本。

我的弹出菜单有

OwnerDraw := true;

我想用:

popupmenu.repaint();

popupmenu.refresh();

但它们不存在。我该怎么办?

1 个答案:

答案 0 :(得分:1)

您可以在菜单项上调用MenuChanged以强制更新它。这是一个受保护的成员,您需要通过众所周知的受保护成员hack访问该成员。

type
  THackedMenuItem = class(TMenuItem);
....
THackedMenuItem(MyMenuItem).MenuChanged(True);//forces redraw of owner drawn item