c# - GetDC(0&) 是什么意思?

标签 c# vb6

我正在阅读一些 VB6 以转换为 C#。这条线是什么意思? 0& 是否等同于 IntPtr.Zero

//'Get a Device context
hdc = GetDC(0&)

这个值用于 pinvoke,所以我不确定 IntPtr.Zero 是否有意义,因为我们需要选择一些对象。

OldFont = SelectObject(hdc, ObjFont)

请注意,ObjFont 是通过

填充的
//'Get the Window's font
ObjFont = SendMessage(hwnd, WM_GETFONT, 0, 0&)//there's that mysterious 0& agaain.

最佳答案

它是一个 (VB6) 类型声明字符。看看this question有关这些的更多详细信息。

在您的示例 VB6 代码中,它强制 0Long(4 个字节),否则它将为 Integer(2字节)

这与再次执行此长手方法相同 VB6 代码:

Dim lParam as Long
lParam = 0
ObjFont = SendMessage(hwnd, WM_GETFONT, 0, lParam)

关于c# - GetDC(0&) 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11903951/

相关文章:

c# - 流行的开源库和引用冲突

c# - ObservableCollection 在删除时以一种奇怪的模式抛出 ArgumentException(Windows Phone LongListSelector)

更新 KB 2687323 后,VB6 IDE 无法加载 MSCOMCTL.OCX

c# - 从多线程 c# Windows 服务应用程序调用 VB6 DLL?

vb6 - VB6 RichTextBox 中 creatin 文本部分的格式化颜色

vb6 - 重试运行时错误

c# - BuildManager.AddReferencedAssembly 究竟做了什么?

c# - 如何在代码中为 DataTemplate 分配事件处理程序?

c# - UserManager 错误 - 在上一个异步操作完成之前在此上下文中启动了第二个操作

vb6 - 从系列中删除异常