我在.NET中有一個控制檯應用程序,我正在做一些字體處理。我爲此使用Win32API,其中一個需要設備上下文來加載字體 - 實際上是IntPtr hdc = GetDC(handle of screen element)
。很明顯,我的應用程序沒有這些手柄,因爲它是一個控制檯應用程序。有沒有辦法解決這個問題?在控制檯應用程序中處理
3
A
回答
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)應該給一個上下文回(整個屏幕)
所以,你應該能夠做到像
IntPtr hdc = GetDC(null);
if(hdc == null)
{
OopsError();
}
1
GetConsoleWindow()
(http://msdn.microsoft.com/en-us/library/ms683175.aspx) :
檢索控制檯使用的窗口句柄與調用過程相關聯。
或者,傳遞NULL可能工作。來自GetDC()
文檔(http://msdn.microsoft.com/en-us/library/dd144871.aspx):
要檢索DC的窗口的句柄。如果此值爲NULL,則GetDC將檢索整個屏幕的DC。
相關問題
- 1. 如何在JVM控制檯應用程序中處理^ C?
- 2. 控制檯應用程序中的錯誤處理
- 3. 控制檯中的System.Xml的C#錯誤處理應用程序
- 4. 控制檯應用程序中強大的異常處理
- 5. 如何處理控制檯應用程序中的shutdown \ logoff?
- 6. 如何處理在控制檯應用程序按鍵事件
- 7. 在批處理文件我的控制檯應用程序
- 8. Java控制檯應用程序清理
- 9. Linux控制檯鍵盤處理程序
- 10. 使用批處理文件控制檯應用程序設置
- 11. TIdTCPServer.OnExecute在控制檯應用程序中
- 12. 全球異常處理(控制檯應用程序)
- 13. 完成處理後退出控制檯應用程序
- 14. 如何在wxWidgets控制檯應用程序中處理關鍵事件?
- 15. 在C++/cli控制檯應用程序中處理停止或退出事件
- 16. 如何在.NET Core控制檯應用程序中處理Scoped服務實例?
- 17. 如何在Windows CE控制檯應用程序中處理Ctrl + C?
- 18. 有沒有辦法在控制檯應用程序中處理http post請求?
- 19. 在C#控制檯應用程序中處理未捕獲的異常
- 20. 從其他控制檯應用程序運行控制檯應用程序
- 21. 從控制檯應用程序啓動控制檯應用程序
- 22. 控制檯應用程序中的HttpContext
- 23. 控制檯應用程序中的System.Drawing.Color
- 24. C++應用程序中的控制檯
- 25. 控制檯應用程序中的iframe
- 26. C#控制檯應用程序中斷?
- 27. 控制檯應用程序中的WriteableBitmapEx?
- 28. 控制檯應用程序中的ConfigurationErrorsException
- 29. HttpUtility.UrlEncode在控制檯應用程序
- 30. 無法在控制檯應用程序
@TCLo - 哪些Win32 API的你需要的句柄傳遞給? MSDN文檔可能會爲我們提供更多關於哪些特定DC可以爲您工作的信息,因此我們可以告訴您如何獲取它。 – 2010-08-03 23:21:22