我在.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. 在批处理文件我的控制台应用程序
- 4. 控制台应用程序中的错误处理
- 5. 控制台中的System.Xml的C#错误处理应用程序
- 6. Java控制台应用程序清理
- 7. Linux控制台键盘处理程序
- 8. 完成处理后退出控制台应用程序
- 9. 在C#控制台应用程序中处理未捕获的异常
- 10. 如何在.NET Core控制台应用程序中处理Scoped服务实例?
- 11. 如何在Windows CE控制台应用程序中处理Ctrl + C?
- 12. 在C++/cli控制台应用程序中处理停止或退出事件
- 13. 从其他控制台应用程序运行控制台应用程序
- 14. 如何在控制台应用程序
- 15. HttpUtility.UrlEncode在控制台应用程序
- 16. appsettings.json在.netCore控制台应用程序
- 17. 在C#控制台应用程序
- 18. 在控制台应用程序
- 19. C# - 在控制台应用程序
- 20. C#,PowerShell和控制台应用程序 - 如何在处理过程中处理输入
- 21. 控制台应用程序中的HttpContext
- 22. 控制台应用程序中的WriteableBitmapEx?
- 23. 控制台应用程序中的System.Drawing.Color
- 24. 控制台应用程序中的ConfigurationErrorsException
- 25. 使用C++处理控制台应用程序/ DLL中的消息Win32
- 26. 包含在GTK应用程序控制台应用程序
- 27. Qt控制台应用程序教程?
- 28. 在Mac上处理来自控制台应用程序的Apple事件
- 29. 在控制台应用程序.NET核心全局异常处理
- 30. 从批处理文件中的控制台应用程序获取返回值
@TCLo - 哪些Win32 API的你需要的句柄传递给? MSDN文档可能会为我们提供更多关于哪些特定DC可以为您工作的信息,因此我们可以告诉您如何获取它。 – 2010-08-03 23:21:22