2010-08-03 91 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(); 
} 
相關問題