我在CScrollView中用GDI繪製了一些圖形和文本。我需要實現縮放功能。我只需要變焦出功能,不需要變焦在比通常呈現更多。如何在GDI繪製的MFC中實現縮放CScrollView
這裏是我最好的想法:
使用MM_ANISOTROPIC映射模式,SetWindowExt/SetViewPortExt函數......這種方式的問題在於,它不適合文本。有沒有辦法強制MFC擴展文本?我只能想到的是根據所選的縮放值設置文本字體大小,但我不確定這是否會看起來很好...畢竟...
繪製到內存DC,並使用StretchBlt blit到適當大小的客戶區(使用SetScrollSizes設置...)。這將解決文本縮放問題。
此外,期望在該過程中具有抗混疊效果。我認爲上述兩種方法本身都應該完成這一點,但我不知道哪一個看起來會更好。此外,我將不得不稍後實施打印/打印預覽功能(使用來自doc/view架構的MFC標準實現),所以我需要該方法與此兼容。
需要你的建議。走哪條路以及爲什麼。也許其他選項也存在?..
謝謝你的答覆,傑裏。不幸的是,你提到的方法有兩個問題:它不縮放文本(使用DrawText API繪製),並且沒有抗鋸齒效果(可能是因爲它執行座標和大小的邏輯轉換,但是例如LineTo函數仍然繪製鋸齒線)。所以這給我留下了第二種方法,我上面描述了(繪製到mem dc然後StretchBlt) - 你怎麼看待它?你能推薦它嗎?.. – 2012-01-08 23:50:45