在控制台应用程序中处理

发布于 2024-09-12 17:05:37 字数 158 浏览 1 评论 0原文

我在 .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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

俯瞰星空 2024-09-19 17:05:37

在 win32 GetDC( null ) 中应该返回上下文(整个屏幕)

MSDN

所以你应该能够做类似的事情

IntPtr hdc = GetDC( null );
if( hdc == null ) 
{
    OopsError();
}

In win32 GetDC( null ) should give a context back (for the entire screen)

MSDN

So you should be able to do something like

IntPtr hdc = GetDC( null );
if( hdc == null ) 
{
    OopsError();
}
鲜血染红嫁衣 2024-09-19 17:05:37

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。

GetConsoleWindow() (http://msdn.microsoft.com/en-us/library/ms683175.aspx):

Retrieves the window handle used by the console associated with the calling process.

Alternatively, passing NULL might work. From the GetDC() docs (http://msdn.microsoft.com/en-us/library/dd144871.aspx):

A handle to the window whose DC is to be retrieved. If this value is NULL, GetDC retrieves the DC for the entire screen.

暖心男生 2024-09-19 17:05:37

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'

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文