C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ドラッグした範囲を四角く表示するには?


(過去ログ 85 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■50867 / inTopicNo.1)  ドラッグした範囲を四角く表示するには?
  
□投稿者/ たか (71回)-(2010/06/21(Mon) 08:15:32)

分類:[.NET 全般] 

C#でWinアプリを作ってます。

画像ソフトで四角を描く際に 始点から終点までマウスをドラッグするとそれにあわせて 四角形が表示されますよね?
あれと同じ処理を webBrowserコントロール上で行いたいのですが いい方法ないですか?
ツールボックスとにらめっこしてるのですがいい方法が見つからず悩んでます。
Panelあたりで背景を透過に設定して(できるのか知らないけど)やるとか?


具体的にはwebBrowser上でドラッグして選択した範囲をキャプチャする機能でキャプチャ自体は実装済みなのですが
ドラッグしている範囲が視覚的に四角形を表示して見えたらいいなぁ〜っと。


あとwebBrowser上でドラッグすると文字などの場合選択されて色が反転してしまいますが
これを阻止することとかって方法もあれば教えてください。

引用返信 編集キー/
■50868 / inTopicNo.2)  Re[1]: ドラッグした範囲を四角く表示するには?
□投稿者/ 魔界の仮面弁士 (1678回)-(2010/06/21(Mon) 09:27:11)
2010/06/21(Mon) 09:28:34 編集(投稿者)

No50867 (たか さん) に返信
> Panelあたりで背景を透過に設定して(できるのか知らないけど)やるとか?
WebBrowser の内容を画面イメージとして Bitmap データに取り込み、
それをコントロール(Panel, PictureBox, Form 等)に表示させてみては如何でしょう。
マウス操作に合わせて矩形を描画する事は、そう難しくは無いと思いますし。

キャプチャそのものは、Gaphics.CopyFromScreen メソッドあるいは、
OleDraw API や BitBlt API を使えば撮れると思います。仕組み上、
アニメーション GIF などは、停止した状態になってしまいますけれどね。

参考になるかは分かりませんが、下記はドラッグ操作によりキャプチャする VB2008 での実装例です。
WebBrowser ではなく、スクリーン全体からのキャプチャとなっています(マルチモニタ対応)。
http://www.vb-user.net/junk/replySamples/2010.02.08.14.53/Clipping.txt


ところで…ドラッグで四角形を表示させた後、それをいつまで維持させる必要があるのでしょうか?
四角形は一時的に表示されれば良いものなのか、それとも WebBrowser の内容がスクロールした場合に
四角形の位置も追従させる必要があるのか、別のページに切り替わった後も表示させたいのか、とか。

もし、スクロール時にも四角形の位置を追従させる必要がある場合、WebBrowser.Document に
その四角形を VML のエレメントとして埋め込んでやれば、それっぽくなるかも知れません。
http://oshiete.goo.ne.jp/qa/4612476.html
引用返信 編集キー/
■50870 / inTopicNo.3)  Re[2]: ドラッグした範囲を四角く表示するには?
□投稿者/ たか (72回)-(2010/06/21(Mon) 12:59:59)
>魔界の仮面弁士さん

回答ありがとうがとうごいます。

> WebBrowser の内容を画面イメージとして Bitmap データに取り込み、
> それをコントロール(Panel, PictureBox, Form 等)に表示させてみては如何でしょう。

これが楽そうですね。
これなら文字がドラッグで反転する心配もないし キャプチャ処理もちょうど作ったばかりだし・・・
と思いながらぱぱっと無事実装しました。
ありがとうございます。


> ところで…ドラッグで四角形を表示させた後、それをいつまで維持させる必要があるのでしょうか?

こちらは一時的に表示するだけなのでwebBrowser.Documentを操作してうんぬんはしなくて対応できました。
(まぁHTMLいじる方が専門なので 実はWebBrowser.Document経由でがりがり書いた方が個人的には早かった気もしなくもないのですが)



解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -