拡大鏡のプログラム


あか  2007-11-13 23:06:32  No: 66836

初心者です。
win32APIで拡大鏡のプログラムを作ってます。 
メモリデバイスコンテキストのなかでマウスカーソル周辺を拡大したものを 
ディスプレイのデバイスコンテキストに転送して表示させてるんですが、 
マウスを移動させたときに、先ほど拡大した部分を元に戻して 
移動先のマウスカーソル周辺をまた拡大という風にしたいんです。
(現在、これができていないので画面が拡大だらけになってしまいます)
 
そのために拡大する前のディスプレイの状態をどこかに保存して、
それをカーソルが移動するたびに復活させてまた拡大というように
しようと思ったのですが、
毎回GetDC(0)をしたとしても拡大した後のディスプレイになってしまうし、
いろいろ試してみたのですがうまくいきません。 
さらに、メニューを開いたり新たにソフトを起動させたりと、 
刻々と変化するディスプレイの状態を追いかけつつ拡大できるようにしたいのです。 
 
いろいろ検索しましたが良い解決法が見つからなく、
また、拡大鏡のプログラムを解説しているようなサイトも見当たらなかったので、  
このような場合、どのような方法を用いればいいのか教えていただきたいです。 
よろしくお願いします。


夏みかん  2007-11-15 09:05:37  No: 66837

> win32APIで拡大鏡のプログラムを作ってます。
僕もむかし拡大鏡プログラムを作ったよ。

でもね。
> ディスプレイのデバイスコンテキストに転送して表示させてるんですが、
このようには表示しなかった。
普通にウインドウを作ってそのクライアント領域に描画しました。

> マウスを移動させたときに、先ほど拡大した部分を元に戻して 
> 移動先のマウスカーソル周辺をまた拡大という風にしたいんです。
>(現在、これができていないので画面が拡大だらけになってしまいます)
これをするなら普通にウインドウを作れば良いよ。
そのウインドウのクライアント領域にマウス周辺のビットマップを拡大して
描画します。そしてマウスが拡大鏡のウインドウに来たら上から下へ自動的に
ウインドウを移動するように工夫すればよい。この方法以外には良い方法が
僕は浮かびませぇ〜ん。

でもこの方法なら
> さらに、メニューを開いたり新たにソフトを起動させたりと、 
> 刻々と変化するディスプレイの状態を追いかけつつ拡大できるようにしたいのです。
も拡大可能になると思う。

> また、拡大鏡のプログラムを解説しているようなサイトも見当たらなかったので、
簡単なプログラムなので見つかりにくいかも。
GDI の基本で出来るから。

あっ、検索したら見つかった。
http://hp.vector.co.jp/authors/VA010663/doc/mag4p_manual.html
でも何処にソースを公開しているのか探せなかった。
見つかったら教えて。
じゃあね。


夏みかん  2007-11-15 09:09:09  No: 66838

ソースコードの場所が分かった。
http://hp.vector.co.jp/authors/VA010663/
このリンクの下の方にzip形式である。
まだダウンロードしていないけど。
じゃあね。


あか  2007-11-20 17:15:55  No: 66839

返信遅れました。ありがとうございます。
確かにこれなら簡単ですね。
これからなんとかマウスを追っていけるように頑張りたいと思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加