お世話になります。VC6.0 MFCで現在画像処理を行っています。
そこで 現在ダイアログに画像を表示させマウスクリック時に
拡大・縮小の処理しています。
ここで 質問なのですがマウスがクリックされた部分を中心に拡大・縮小
させるには どういった方針で処理を進めていけばいいのでしょうか??
ダイアログの座標やクリップボードの大きさ、マウスの現在位置の座標など
を使って処理を進めていけばいいのでしょうか??
ご教授お願いいたします。
クリックした時にクリックしたウインド上の位置と画像上の位置を保持しておいて
拡大縮小した時に画像上のクリックした位置に当たる位置がウインドウ上のクリックした
位置にくるようにするには、画像の表示基準位置を何処にすればいいのかを計算すればい
いと思います。
早い話、クリックした位置によって画像を拡大縮小して貼り付けるときの基準位置が変わ
るわけですからそれを算出すればいいと思います。
最近似たようなことをやりました。
元の画像データの座標、例えば左上や中心の座標などを
ダイアログ上の座標に変換して表示していると思いますが、
クリックされた点が元のデータの座標系ではどこになるか、
という逆変換が必要です。
> ここで 質問なのですがマウスがクリックされた部分を中心に拡大・縮小
> させるには どういった方針で処理を進めていけばいいのでしょうか??
クリックされたときの処理を、
1.中心を移動する
2.中心を固定して拡大・縮小する
の2段階に分けて考えると判りやすいのではないでしょうか。
一旦、拡大・縮小の機能を忘れて(殺して)、中心移動の処理だけ
実装すると良いと思います。
PATIOさん。たいちうさん。
ご丁寧な説明ありがとうございました。
おかげさまでなんとか処理することができました。
また 何かありましたらよろしくお願いいたします。