我正在调查我的应用程序中第三方组件(DevExpress)的问题。 我的问题非常类似于 DevExpress知识库文章。我得到相同的异常与更少相同的堆栈跟踪。 所以我使用.NET Reflector来查找,在这种情况下可能为null,并且唯一一个空白的对象是Graphics。 这是使用Graphics.FromHwnd(IntPtr.Zero)创建的。因为我对GDI没有广泛的了解,所以我想知道是否有人可以告诉我可能会返回null的情况......

我尝试在Windows不在GDI句柄的情况下重现它,但后来我得到了一个“out of handle”。 - 至少一次例外,在我正在调查的问题中并非如此

TIA, 马丁

有帮助吗?

解决方案

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

然而,GDI +充满了错误,.NET与它的集成非常不稳定,除了使用GDI +之外,你的代码或DevExpress很可能没有错。

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top