Я рисую некоторую графику и текст с помощью GDI в моем CScrollView. Мне нужно реализовать функцию масштабирования. Мне нужно только масштабирование out , не нужно увеличивать in больше, чем обычно.
Вот мои лучшие идеи:
Использовать режим отображения MM_ANISOTROPIC с SetWindowExt / SetViewportExt ... Проблема этого подхода заключается в том, что он не масштабирует текст. Есть ли способ заставить MFC также масштабировать текст? Единственное, о чем я могу думать, это установить размер шрифта текста в соответствии с выбранным значением масштаба, но я не уверен, будет ли это хорошо выглядеть в конце концов ...
Отрисовка в память DC и использование StretchBlt для перетаскивания в клиентскую область соответствующего размера (устанавливается с помощью SetScrollSizes ...). Это решит проблему с масштабированием текста.
Также желательно иметь сглаживающий эффект в процессе. Я думаю, что оба метода выше должны сделать это как таковые, но я не знаю, какой из них будет выглядеть лучше. Кроме того, позже мне потребуется реализовать функции печати / предварительного просмотра (используя стандартную реализацию MFC из архитектуры doc / view), поэтому мне нужен метод, совместимый с этим.
Нужен ваш совет, пожалуйста. Какой путь и почему. Может быть, есть и другие варианты? ..