【问题标题】:C++ Builder - Multiple changes to main menuC++ Builder - 对主菜单的多项更改
【发布时间】:2016-01-25 01:45:26
【问题描述】:

我需要对 C++ Builder VCL 应用程序中的主菜单进行多次启用/禁用更改。

当应用程序更改状态时,我会循环禁用和启用多个菜单的可见性。

我遇到的这个问题是,在循环期间偶尔循环时,可见的菜单比屏幕上的菜单多,导致换行,然后导致主窗体上的所有内容调整大小,并重新调整大小导致缓慢和巨大的闪烁。

我已经尝试在主窗体上禁用和启用对齐,没有任何影响。

我已经在主窗体上完成了 WM_SETREDRAW 技巧,但是当它停止绘制时,之后调用 invalidate 并没有让一些子控件正确重绘。一个不会重绘的例子是 TPageControl 上的选项卡。

可能相关的另一点是,代码是从 TTabSheet::OnShow 回调中调用的。

理想情况下,我想找到一个 BeginUpdateMainMenu 和 EndUpdateMainMenu 方法,但是我在 VCL 文档或 Win32 文档中找不到。

非常感谢任何帮助。谢谢。

【问题讨论】:

  • 使用具有整体禁用选项的操作列表
  • 谢谢大卫。我正在努力让它快速工作,并且菜单系统非常复杂,从 XML 解析并根据各种情况启用/禁用 Lua 控制。毫无疑问,您的建议可能是正确的,但是我目前没有时间了解操作列表。我想知道我当前的设置是否可以做一些hacky - 也许我缺少一些明显的东西?谢谢
  • 很奇怪我的评论被删除了!
  • 是的,你为什么要删除它?

标签: c++ delphi winapi c++builder vcl


【解决方案1】:

这不是一个技术性的答案,但我是从最终用户“可用”的角度考虑的:他/她使用“可见的菜单多于屏幕上的菜单”会有多容易 您是否有可能以某种方式对菜单项进行分组,以便在子菜单中显示它们?

【讨论】:

    猜你喜欢
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-28
    相关资源
    最近更新 更多