代码之家  ›  专栏  ›  技术社区  ›  Martin Moser

Graphics.FromHwnd(IntPtr.Zero)返回null,为什么?

  •  0
  • Martin Moser  · 技术社区  · 17 年前

    我目前正在调查我的应用程序中的第三方组件(DevExpress)的问题。 我的问题和这个很相似 DevExpress KB article . 我得到了相同的异常,但更多的是相同的堆栈跟踪。 这是使用Graphics.FromHwnd(IntPtr.Zero)创建的。因为我对GDI没有广泛的了解,我想知道是否有人能告诉我可能返回null的场景。。。

    蒂亚, 马丁

    2 回复  |  直到 17 年前
        1
  •  0
  •   Paul Alexander    16 年前

    据我回忆,HWND为0(实际上是IntPtr.Zero)是当前用户会话桌面的句柄。它可以用来测量系统的各种指标,并且应该是Graphics.FromHwnd的有效值。

    然而,GDI+充满了bug,与它的.NET集成非常不稳定,很可能您的代码或DevExpress没有任何问题,只是使用了GDI+。

        2
  •  0
  •   IAbstract    16 年前

    首先,您正在使用 IntPtr 结构,并将其初始化为零。然后将此句柄传递给Graphics类。除非你有一扇有窗户的窗户 handle == 0 null 价值正是我所期望的。