c++ Builder语言 - 多次更改主菜单

C++ Builder - Multiple changes to main menu

本文关键字:菜单 Builder 语言 c++      更新时间:2023-10-16

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

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

我遇到的问题是,在循环过程中,偶尔会有比屏幕上适合的更多的菜单可见,导致换行,然后导致主表单上的所有内容调整大小,并重新调整大小,导致缓慢和巨大的闪烁。

我已经尝试了禁用和启用对齐的主要形式,没有任何影响。

我已经完成了主要形式的WM_SETREDRAW技巧,然而,当它停止绘图时,调用无效之后,没有得到一些子控件正确地重新绘制。一个不会重绘的例子是TPageControl上的选项卡。

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

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

任何帮助都是非常感激的。谢谢。

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