在控制台应用程序中处理
我在 .net 中有一个控制台应用程序,我正在对字体进行一些处理。我为此使用 Win32API,其中一个需要设备上下文来加载字体 - 实际上是 IntPtr hdc = GetDC(屏幕元素句柄)
。显然,我的应用程序没有这些句柄,因为它是控制台应用程序。有办法解决这个问题吗?
I have a console app in .net that I'm doing some processing of fonts. I'm using Win32APIs for this and one of them requires a device context for loading a font - actually a IntPtr hdc = GetDC(handle of screen element)
. Obviously, my app doesn't have these handles as it's a console app. Is there a way to get around this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在 win32 GetDC( null ) 中应该返回上下文(整个屏幕)
MSDN
所以你应该能够做类似的事情
In win32 GetDC( null ) should give a context back (for the entire screen)
MSDN
So you should be able to do something like
GetConsoleWindow()
(http://msdn.microsoft .com/en-us/library/ms683175.aspx):或者,传递 NULL 也可能有效。来自
GetDC()
文档 (http:// msdn.microsoft.com/en-us/library/dd144871.aspx):GetConsoleWindow()
(http://msdn.microsoft.com/en-us/library/ms683175.aspx):Alternatively, passing NULL might work. From the
GetDC()
docs (http://msdn.microsoft.com/en-us/library/dd144871.aspx):IntPtr hdc = GetDC(System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle);
在 .Net 控制台应用程序中工作得很好。我不相信
null
会在 .Net 中工作,因为它会引发错误,参数:无法从''
转换为'System .IntPtr'
IntPtr hdc = GetDC(System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle);
works in .Net console apps just fine.I don't believe
null
will work in .Net as it kicks Error, Argument: cannot convert from'<null>'
to'System.IntPtr'