GetDC(0&)是什么意思?
我正在阅读一些VB6转换为C#。这条线是什么意思? 0&
相当于IntPtr.Zero
?GetDC(0&)是什么意思?
//'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代码,它迫使0
是一个Long
(4字节),因为它本来是一个Integer
(2字节)
这是一样的做这个长手的做法再次VB6的代码:
这是一样Clng(0)
:)正如下面所说的家伙; d
在C中是在VB6中,它与'Clng(0)' – 2012-08-10 14:43:55
相同。在C#中,'0'是64位。在VB6中,'0'是32位(而“0”是16位)。 – 2012-08-10 14:46:24
哦,我的坏,斯里。 Thx解释:) – Nickon 2012-08-10 14:48:02
这相当于通过NULL
到GetDC()
WH ich指示函数返回hDC
为整个屏幕,因此IntPtr.Zero
是等效的。
那么让设备上下文为零?那是什么意思?我认为它试图去处理一些事情。 – 2012-08-10 14:41:45
@ P.Brian.Mackey从MSDN:“如果参数为NULL,则它获得整个屏幕的DC” – James 2012-08-10 14:44:41
并且据我所知VB6“Long”是一个32位有符号整数,例如,相当于一个'System.Int32'或使用C#别名'int'。 – 2012-08-10 14:45:01