Получение контекста устройства из API печати .NET - PullRequest
1 голос
/ 26 марта 2009

Я работаю над приложением .NET для управления принтерами DataCard Desktop Card и наткнулся на проблему. Чтобы выполнить кодирование магнитной полосы и чипа, мне нужно вызвать функцию в dll API собственного принтера, чтобы включить интерактивный режим принтеров.

Мне удалось создать код P / Invoke для вызова этой встроенной функции. Но проблема в том, что этот метод принимает дескриптор контекста устройства принтера в качестве параметра и должен вызываться ДО того, как будет вызвана функция GD32 StartDoc.

В API печати .NET у меня есть доступ к hDC из объекта Graphics. Но, насколько я вижу, объект Graphics доступен только ПОСЛЕ вызова функции StartDoc.

Итак, мой вопрос: знает ли кто-нибудь способ получения контекста до вызова StartDoc?

1 Ответ

1 голос
/ 26 марта 2009

Вы можете сделать OpenPrinter, чтобы получить дескриптор принтера (HANDLE), а затем вызвать CreateDC, передав этот дескриптор, чтобы получить DC принтера в любое время (до StartDoc).

...