5

我需要在下面的函数中获得 IntPtr.Zero 的确切含义。我使用此函数将 word 文档文本范围位置像素值转换为 WPF 单位值。

Graphics g = Graphics.FromHwnd(IntPtr.Zero)

这通常说通过手柄,但我没有得到它。

4

2 回答 2

6

Graphics.FromHwnd方法用于Graphics从窗口的指定处理程序创建对象。

当您IntPtr.Zero作为参数传递时,您正在Graphics从允许您直接在屏幕上绘制的 Windows 桌面创建一个。

于 2016-05-06T15:15:04.837 回答
0

IntPtr是表示句柄或指针的平台特定方式。在 32 位系统上,指针为 32 位宽,而在 64 位系统上,指针为 64 位宽。这种类型的存在是为了向您隐藏这些差异。

IntPtr.Zero表示值为 0(本质上为 null)的句柄或指针。您可以在 API 需要 Windows API 样式句柄的地方使用它,例如FromHwnd在您的示例中的调用中。在 Windows API 中,HWND 是一个窗口句柄,其中 null 表示“无窗口”。要通过 C# 传递它,您使用IntPtr.Zero

于 2016-05-06T15:15:14.203 回答