Я использую простые операторы, чтобы все было просто:
- Экран идет от 0, 0 до 1000, 1000 (экранные координаты).
- Окно изменяется от 100, 100 до 900, 900 (экранные координаты).
- У меня есть контекст устройства памяти, который идет от 0, 0 до 200, 200 (логические координаты).
Мне нужно отправить в окно сообщение WM_PRINT. Я могу передать контекст устройства в окно через WM_PRINT, но я не могу передать, какую часть своего окна оно должно отрисовывать в контекст устройства.
Есть ли способ изменить контекст устройства, который приведет к тому, что окно отрисует определенную часть самого себя в контексте устройства (скажем, его нижнюю правую часть от 700, 700 до 900, 900)?
(Это все под старым добрым GDI и на C или C++. Любое решение тоже должно быть.)
Обратите внимание: эта проблема является частью более крупного решения, в котором размер контекста устройства является фиксированным, а скорость имеет решающее значение, поэтому я не могу полностью отобразить окно в отдельном контексте устройства и скопировать нужную часть из результирующего полного растрового изображения в свой контекст устройства.