- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下代码来自 Windows 10 周年更新 SDK。我需要常量句柄才能在 Delphi 中使用 API,因为截至目前,这些 header 尚未包含在 Delphi 中。
DECLARE_HANDLE(DPI_AWARENESS_CONTEXT);
#define DPI_AWARENESS_CONTEXT_UNAWARE ((DPI_AWARENESS_CONTEXT)-1)
#define DPI_AWARENESS_CONTEXT_SYSTEM_AWARE ((DPI_AWARENESS_CONTEXT)-2)
#define DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE ((DPI_AWARENESS_CONTEXT)-3)
当我使用GetThreadDpiAwarenessContext时在各种 DPI 场景中,我了解了 NativeUInts 的值是什么:
DPI_AWARENESS_CONTEXT_UNAWARE = 16;
DPI_AWARENESS_CONTEXT_SYSTEM_AWARE = 17;
DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE = 18;
但我想 100% 确定这些值是面向 future 的。他们在 SetThreadDpiAwarenessContext 工作调用并具有预期的效果,但我不清楚这些值是如何得出的。除了显式整数声明之外,我无法在 Delphi 中复制产生这些结果的 header 构造。
最佳答案
用于SetThreadDpiAwarenessContext你应该将其声明为
type
DPI_AWARENESS_CONTEXT = type THandle;
const
DPI_AWARENESS_CONTEXT_UNAWARE = DPI_AWARENESS_CONTEXT(-1);
DPI_AWARENESS_CONTEXT_SYSTEM_AWARE = DPI_AWARENESS_CONTEXT(-2);
DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE= DPI_AWARENESS_CONTEXT(-3);
但是当你收到 GetThreadDpiAwarenessContext 的回复时您需要使用 GetAwarenessFromDpiAwarenessContext收到的值并将其与 DPI_AWARENESS 进行比较枚举。
您无法直接比较 DPI_AWARENESS_CONTEXT
,因为它包含多条信息,并且 Microsoft 将来可能会更改它。
关于delphi - 如何将 DECLARE_HANDLE 和后续常量从 windef.h 转换为 Delphi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41708679/
我正在将一段代码从 VC6 移植到 VS2008。代码 typedef 的 HSPRITE 为 int。但是 Windows SDK 6.1 已经通过 DECLARE_HANDLE 声明了 HSPRI
以下代码来自 Windows 10 周年更新 SDK。我需要常量句柄才能在 Delphi 中使用 API,因为截至目前,这些 header 尚未包含在 Delphi 中。 DECLARE_HAND
我是一名优秀的程序员,十分优秀!