【问题标题】:Owner Drawing TMainMenu over Aero Glass Form?所有者在 Aero 玻璃窗体上绘制 TMainMenu?
【发布时间】:2011-06-11 13:10:07
【问题描述】:

问题 我正在使用一种表格,其中航空玻璃边框从顶部延伸约 80 像素。 TMainMenu 不支持开箱即用的自定义定位,我只假设它可能通过所有者绘制来实现。即使在双缓冲为 true 的情况下,在默认位置的表单上绘制文本也无法在任何版本的 delphi 中正确显示(07、09,这里由朋友在 10 XE 上测试)。

我真正想要的是菜单是透明的,带有黑色文本,如果可能的话,在自定义位置的下方和右侧。

使用平面速度按钮和弹出菜单来模拟效果没有问题,因为它运行良好。我必须计算文本的宽度,以便语言翻译适当地设置按钮的宽度。所以我只是想看看是否有替代方案。

我知道的和发现的 老实说,不是很多。看到一些 API 调用使画笔透明,这适用于其他任务,但似乎不是这样。

我在 VB Pascal 和 C# 中查看了一些自定义绘制的项目,但仍然没有看到我在寻找什么。如果有人能指出我正确的方向,我将不胜感激。到目前为止,我所做的只是绘制没有 3d 渐变的菜单。

【问题讨论】:

    标签: delphi menubar aero-glass


    【解决方案1】:

    我不相信这是可能的,使用 TMainMenu。我相信你可以很容易地做到这一点,但是通过使用表单下拉菜单,使其成为一块玻璃,并使用每个玻璃表单模拟 TMainMenu 中的一个菜单

    【讨论】:

    • 不是 100% 确定你的意思,但这听起来很像我打算使用扁平速度按钮和弹出菜单做的事情。在我选择答案之前,我会等着看有没有其他人输入过。
    • Windows 自己创建菜单,并且可以自己绘制它们。您在 Owner-Draw 菜单项模式下覆盖它的能力包括绘制您自己的位图或文本的选项,这受到使用 Windows 自己的菜单 API 的决定的严格限制。通过完全避免它们,您可以完全控制自己。清除吗?
    猜你喜欢
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 2011-05-05
    • 2011-03-21
    • 1970-01-01
    相关资源
    最近更新 更多