2010-08-03 56 views
3

我在.NET中有一个控制台应用程序,我正在做一些字体处理。我为此使用Win32API,其中一个需要设备上下文来加载字体 - 实际上是IntPtr hdc = GetDC(handle of screen element)。很明显,我的应用程序没有这些手柄,因为它是一个控制台应用程序。有没有办法解决这个问题?在控制台应用程序中处理

+0

@TCLo - 哪些Win32 API的你需要的句柄传递给? MSDN文档可能会为我们提供更多关于哪些特定DC可以为您工作的信息,因此我们可以告诉您如何获取它。 – 2010-08-03 23:21:22

回答

1

IntPtr hdc = GetDC(System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle);在.Net控制台应用程序中工作得很好。

我不相信null将在.net中工作,因为它踢错误,参数:无法从'<null>'转换为'System.IntPtr'

+0

谢谢,效果很好。 – Stan 2010-08-05 21:01:20

3

在Win32中的GetDC(NULL)应该给一个上下文回(整个屏幕)

MSDN

所以,你应该能够做到像

IntPtr hdc = GetDC(null); 
if(hdc == null) 
{ 
    OopsError(); 
} 
相关问题