c++ - 两列 TPopupMenu 列出右对齐的快捷方式

标签 c++ c++builder delphi-2009

使用 Borland/CodeGear/Ebarcadero C++ Builder 2009。是否可以在 TPopupMenu 的第二列中右对齐显示快捷方式(或其他文本)?

例如:

[image] Open File        ctrl-O
[image] Close File       ctrl-W
[image] BlahBlah         ctrl-B

等等

如果是这样,怎么办? 我检查了一个项目的 break 属性,但结果并不完全是我想要的,因为项目可以自己选择,而不是整行。而且画得也不是很好。

感谢您的反馈。

最佳答案

菜单项可以有一个图像(参见 TMenuItem.ImageIndex 属性),并且可以分配一个快捷方式(参见 TMenuItem.ShortCut 属性)。 VCL 将自动为您绘制这些元素,就像您所显示的那样。

menu1

默认情况下,它们有点挤在一起。您可以使用 TMenuItem.OnMeasureItem 事件来扩展 Width:

menu2

如果您仍然不喜欢默认绘图的方式,或者您希望在右侧显示与 ShortCut 不同的文本,您将不得不自己绘制菜单项(查看 TMenuItem.OnDrawItemTMenuItem.OnAdvancedDrawItem 事件),然后您可以根据需要显示菜单项。

关于c++ - 两列 TPopupMenu 列出右对齐的快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33818649/

相关文章:

c++ - 空指针数组

c++ - C++ 和 OpenGL 矩阵顺序之间的混淆(行优先 vs 列优先)

c++ - boost Python : polymorphic container?

c++ - 在 CodeGear C++ Builder 上有比 TMemo 更快的组件吗?

delphi - 如何使用外部字体?

delphi - 从专门的泛型类型派生

c++ - 如何在扩展 QTreeWidgetItem 而不是 QTreeWidget 上调用 SLOT?

c++ - Borland C++ Builder 5 - 通过 Escape 键取消不起作用

delphi - OmniThreadLibrary C++ 构建器构建问题

delphi - Delphi 中的 C 风格十六进制 - 未记录的功能?