【发布时间】:2016-01-27 08:40:05
【问题描述】:
我想知道默认菜单弹出对齐/方向是什么。当您在应用程序中使用主菜单或使用上下文弹出菜单时,它会向右、居中或向左打开 - 取决于 Windows 版本、一些自定义注册表设置或左/右手选项。
必须有一种方法可以使用某些 Windows API 获取该信息(而不是为不同的 Windows 版本/首选项/注册表修改等构建复杂的函数)。
我需要将这些信息应用到我的应用程序中的一些自定义元素,我希望这些元素以与该系统上所有其他菜单相同的方向打开。这是一个 Delphi 应用程序,但如果它是一个 API 调用,那么我会很高兴使用您选择的语言提供解决方案。
【问题讨论】:
-
获得默认菜单行为的最简单方法可能是使用菜单。可以自定义菜单以显示几乎所有内容。
-
SPI_GETMENUDROPALIGNMENT 是你想要的。
-
再接Raymond的评论,实际的API函数是
SystemParametersInfo()。 -
SystemParametersInfo(SPI_GetMenuDropAlignment, 0, @ res, 0);做这项工作。非常感谢! @RaymondChen 如果你愿意,你可以创建一个答案,所以我可以接受。
-
欢迎您写下自己的答案并接受。我不太了解 Delphi,因此您可以更好地编写与 Delphi 兼容的答案。
标签: winapi