У меня есть консольное приложение в .net, которое я обрабатываю с помощью некоторых шрифтов. Я использую Win32API для этого, и один из них требует контекста устройства для загрузки шрифта - фактически IntPtr hdc = GetDC(handle of screen element)
. Очевидно, что в моем приложении нет этих дескрипторов, так как это консольное приложение. Есть ли способ обойти это?Ручка в консольном приложении
ответ
IntPtr hdc = GetDC(System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle);
работает в .Net приложениях консоли просто отлично.
Я не верю null
будет работать в .NET, как он начинает Ошибки, аргумент: не могу конвертировать из '<null>'
в 'System.IntPtr'
спасибо, хорошо работает. – Stan
В win32 GetDC (нуль) должно дать контекст назад (на весь экран)
Таким образом, вы должны быть в состоянии сделать что-то вроде
IntPtr hdc = GetDC(null);
if(hdc == null)
{
OopsError();
}
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. HttpContext в консольном приложении
- 2. Я в консольном приложении?
- 3. таймер в консольном приложении
- 4. WriteableBitmapEx в консольном приложении?
- 5. КонфигурацияErrorsException в консольном приложении
- 6. winform в консольном приложении
- 7. System.Drawing.Color в консольном приложении
- 8. Async в консольном приложении
- 9. Цвет в консольном приложении
- 10. System.Net.WebException на консольном приложении
- 11. Объектные массивы в консольном приложении
- 12. Использование ocx в консольном приложении
- 13. FileVersionInfo.GetVersionInfo() неверно в Консольном приложении
- 14. Показать изображение в консольном приложении
- 15. Исключения C++ в консольном приложении?
- 16. Загрузка cmd в консольном приложении
- 17. Thread.CurrentPrincipal в консольном приложении .NET
- 18. Рисование пирамиды в консольном приложении
- 19. System.Web.UI недоступен в консольном приложении?
- 20. ReadKey в консольном приложении C#
- 21. Помощь в консольном приложении! C#
- 22. Форма WPF в консольном приложении
- 23. DotNetBrowser PrintHandler в консольном приложении
- 24. Отключение пасты в консольном приложении
- 25. CoCreateInstance висит в консольном приложении
- 26. C# меню в консольном приложении
- 27. Автоматическое обновление в консольном приложении
- 28. Простое меню в консольном приложении
- 29. Использование WebBrowser в консольном приложении
- 30. Кэш ASP.NET в консольном приложении?
@TCLo - Какие win32 API вам нужно передать ручку? Документация MSDN может дать нам больше информации о том, какой конкретный DC будет работать для вас, поэтому мы можем рассказать вам, как его захватить. –