お世話になります。よろしくお願いいたします。
現在、CScrollView で、簡単な画像ビューワを作っています。
これに拡大・縮小表示機能をつけたいのですが、詰まっています。
具体的には、マッピングモードを MM_ISOTROPIC にし、SetWindowExt と
SetViewportExt で拡大率を設定しています。
これで画像は拡大できるのですが、スクロールバーがそれにあわせて変化しません。
CScrollView::SetScrollSizes には MM_ISOTROPIC は渡せません。
この場合、スクロールバーを適切に変更させるには、どうしたらよろしいのでしょう
か?
環境は WinXP Pro SP2 + VC++ 7.1 MFC MDI です
>CScrollView::SetScrollSizes には MM_ISOTROPIC は渡せません。
既に、「Spy++」等を使って確認されているのであれば、
私の知識も、これまでです。
MM_ISOTROPIC・・・?(>私)
直接的な対策ではないですが、
マッピングモードは使わないで、StretchBltを使う。
とか、
バックバッファに好きなマッピングモードで描いてから画面に転送する。
とか。
レスありがとうございます。
拡縮自体はマッピングモードを使って行い、SetScrollSizes にはピクセル単位の値を自前で計
算して渡してやることで、正常にスクロールするようになりました。
が、今度は CRectTracker を使った画像の範囲選択で詰まっています。
CScrollView で CRectTracker を使うには、一筋縄では行かないようです。
まだ問題の整理が自分の中で付いておりませんので、詳細な書き込みは控え、スレはとりあえず
開いたままとさせていただきます。
試行錯誤しております。
CScrollView::SetScrollSizes でスクロール領域のサイズを指定しても、実際に View
のサイズが広がるわけではないので、スクロールしてから CRectTracker で矩形選択し
ても、座標はスクロールしていない時と同じものになっています。
これに拡縮が加わると、もう頭がぐるぐるです…