CScrollView で拡大・縮小を実装するには – プログラミング – Home

CScrollView で拡大・縮小を...
 
通知
すべてクリア

CScrollView で拡大・縮小を実装するには


aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
Topic starter  

お世話になります。よろしくお願いいたします。

現在、CScrollView で、簡単な画像ビューワを作っています。
これに拡大・縮小表示機能をつけたいのですが、詰まっています。
具体的には、マッピングモードを MM_ISOTROPIC にし、SetWindowExt と
SetViewportExt で拡大率を設定しています。
これで画像は拡大できるのですが、スクロールバーがそれにあわせて変化しません。
CScrollView::SetScrollSizes には MM_ISOTROPIC は渡せません。
この場合、スクロールバーを適切に変更させるには、どうしたらよろしいのでしょう
か?

環境は WinXP Pro SP2 + VC++ 7.1 MFC MDI です


引用
トピックタグ
エートリーぶ
 エートリーぶ
(@エートリーぶ)
ゲスト
結合: 20年前
投稿: 7
 

>CScrollView::SetScrollSizes には MM_ISOTROPIC は渡せません。
既に、「Spy++」等を使って確認されているのであれば、
私の知識も、これまでです。

MM_ISOTROPIC・・・?(>私)


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

直接的な対策ではないですが、
マッピングモードは使わないで、StretchBltを使う。
とか、
バックバッファに好きなマッピングモードで描いてから画面に転送する。
とか。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
Topic starter  

レスありがとうございます。
拡縮自体はマッピングモードを使って行い、SetScrollSizes にはピクセル単位の値を自前で計
算して渡してやることで、正常にスクロールするようになりました。
が、今度は CRectTracker を使った画像の範囲選択で詰まっています。
CScrollView で CRectTracker を使うには、一筋縄では行かないようです。
まだ問題の整理が自分の中で付いておりませんので、詳細な書き込みは控え、スレはとりあえず
開いたままとさせていただきます。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
Topic starter  

試行錯誤しております。
CScrollView::SetScrollSizes でスクロール領域のサイズを指定しても、実際に View
のサイズが広がるわけではないので、スクロールしてから CRectTracker で矩形選択し
ても、座標はスクロールしていない時と同じものになっています。
これに拡縮が加わると、もう頭がぐるぐるです…


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました