タイトル | : サブモニタのキャプチャ方法 |
記事No | : 9839 |
投稿日 | : 2010/02/04(Thu) 10:29 |
投稿者 | : camputer |
こんにちは、質問させていただきます。
開発環境:XP+VB2008 VB歴約1年でございます。どうぞよろしくお願いいたします。
モニタ上の好きな部分(Form内外問わず、デスクトップ、 ステータスバーなどすべて)をキャプチャできるようにしたつもりなのですが、 サブモニタ上でうまく動作いたしません。
メインモニタ側はなんとか完成いたしましたが、以下のようになります。 Form1の「Btnキャプチャ開始」クリック →Form2をWindowState = Maximizedで表示し、それにデスクトップの画像 を貼り付けておく。(e.Graphics.DrawImage(screenImage, 0, 0)) →Me.MouseDown, Me.MouseMove, Me.MouseUp 中にマウスドラッグ範囲を四角形で描画
ただこの方法を当初の目的でございました別のPC(メインモニタ+サブモニタ)に 持って行きましたところ、Form2がサブモニタ側まで広がってくれず、 キャプチャできません。。。
そこで、以前花ちゃんさまからご教示いただいた方法にトライしてみて、 Form2外のマウスイベントを検知するところまで成功したのですが、 Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) MyBase.WndProc(m)
If m.Msg = &H201 Then '&H201:マウスの左ボタンを押した mouseStart = New Point(Cursor.Position.X, Cursor.Position.Y) Me.Capture = True Me.Tag = "MouseDown" ElseIf m.Msg = &H200 And Me.Tag = "MouseDown" Then '&H200:マウスが移動した mouseEnd = New Point(Cursor.Position.X, Cursor.Position.Y) Invalidate() Me.Capture = True ElseIf m.Msg = &H202 Then '&H202:マウスの左ボタンが解放された Me.Capture = True Me.Tag = "MouseUp" Close() End If End Sub
しかしForm外に四角形(選択領域)を表示する方法と、そこの画像を キャプチャする方法が分かりません。。
一番早いのは、Form2をサブモニタにも入れることができることなのですが、 何かキャプチャのよさそうな方法をひらめかれる方がいらっしゃいましたら、 是非ともアドバイスいただきたくお願いいたします。 どうぞよろしくお願いいたします。
|