プロが教える店舗&オフィスのセキュリティ対策術

お世話になります。
visual basicでマウスでデスクトップ上をドラックして範囲選択する操作を
フォーム上の操作で可能なのでしょうか?
例えば、画面の左上1/4を選択することを画面の座標を入力することで行いたいのですが…。
よろしくお願いいたします。

A 回答 (3件)

『画像表示部分』がウィンドウであれば、[WindowFromPoint]APIでウィンドウハンドルを取得することができそうです。


ウィンドウハンドルさえ取得すれば、位置やサイズは取得できます。

ざっとUI(及び操作)を考えると
ピクチャボックスなどを配置してその上でマウスボタンを押下する(カーソル形状を変更する)
対象のウィンドウまで、マウスボタンを押下したままカーソルを移動(ドラッグ:ユーザの操作)
対象のウィンドウ上でマウスボタンを離す(ユーザの操作)、MouseUpイベントが発生する。その際のX,Y(相対座標)から絶対座標へ変換して、WindowFromPointを利用して対象のウィンドウハンドル取得
などですね。

もし最終的にやりたいことが、『MediaPlayerで再生されているムービーをキャプチャしたい』ということであれば、DirectXの関係などでキャプチャ不可能な環境の方が多いですよ。
    • good
    • 0
この回答へのお礼

返事遅くなり大変申し訳ございません。
知らないことが多くてまだまだ勉強が必要そうです。
本当にありがとうございました。

お礼日時:2004/10/21 02:02

『デスクトップ上を』という事なので生半可な方法では不可能です。


画面いっぱいに表示した枠無しフォームを用意する。
デスクトップのスクリーンショットを取って、フォームに表示させる。
その上でマウスドラッグなりさせて範囲を指定させる。
不必要になったらすぐにフォームを非表示(アンロード)させる。

上の方法で操作上問題ない、及び目的に適うならば比較的簡単に実現できます。

この回答への補足

BellBell様、早速の御回答ありがとうございます。
わたしの説明不足で申し訳なかったのですが、
「デスクトップ上を…」というよりは、MediaPlayer等の動
画再生ソフトの画像表示部分をマウスドラッグによって範囲選択する操作をワンタッチで行いたいのですが・・・。
お手数ですが、よろしくお願いいたします。

補足日時:2004/09/21 23:30
    • good
    • 0

可能ですよ。


フォームのマウスダウン、マウスムーブ、マウスアップの
イベントにX、Y座標がありますので、それを使って
例えば点線の四角形(フレームコントロール)の
大きさを制御し、
四角形の中に物があるかどうかで判定します。
座標を入力して・・・と言うのはこれを応用して下さい。
まずは、debug.print x,y 等として、
値がどう変化するか、イミディエイト画面に表示してみましょう。

この回答への補足

早速の御回答ありがとうございます。
BellBell様への補足にも書いたのですが、
マウスダウン等のイベントによって、
動画再生ソフトの動画部分を選択できるということで
よろしかったでしょうか?
まだ手探り段階で、試すことができなくて…。
お手数ですが、よろしくお願いいたします。

補足日時:2004/09/21 23:36
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!