[【VB6】Formがクリックされた時のイベントを拾い座標を取得したい!]


VB6でメインフォームと、その上に表示する透過フォームを作成しました。
透過フォームには、メインフォームに対するオプションのような表示を行います。

この透過フォームの一部(透過の部分)をクリックしたときに座標を取得する処理を
造る必要がでてきたのですが、どのようにすれば実現できますか?

※質問者は以下の方法で試してみましたが、実現できませんでした。

①Visible = falseのコントロールを配置し、コントロールがクリックされた
 時のメソッドを待つ→falseにしたところ、イベントが発生しなくなったためNG 

アドバイスよろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2010/10/17 12:19:48
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:doxas No.1

回答回数13ベストアンサー獲得回数4

ポイント100pt

透過フォームというのが何をさしているのかにもよりますが……たとえば単にクリックされた座標を拾いたいだけであれば、ラベルなどのコントロールを用いたほうが簡単に実現できるとは思います。


ラベルには、BackStyle というプロパティがあります。

このプロパティを fmBackStyleTransparent に設定することで、Visible プロパティを変更することなく、完全に透明なラベルを配置することが可能になります。ラベル自体は見えなくても存在していますので、クリックイベントは普通に発生します。

以下のサイトなどをご参考になさるとよろしいかと。

Excel Gamer - Shadow Slash Chapter.98 [ クリックゲーム3:クリック座標検知 ]

id:harunoharuno

回答ありがとうございました。

今回は(その他の原因かもしれませんがおそらく)

http://hanatyan.sakura.ne.jp/patio/read.cgi?no=90

に記載されている方法で透明にしているので

LabelのCaption部分

がクリックされたときしかイベントが発生しないようでした。

なのでCaptionがないときはイベントを拾うことができませんでした。

2010/10/14 10:45:48

その他の回答2件)

id:doxas No.1

回答回数13ベストアンサー獲得回数4ここでベストアンサー

ポイント100pt

透過フォームというのが何をさしているのかにもよりますが……たとえば単にクリックされた座標を拾いたいだけであれば、ラベルなどのコントロールを用いたほうが簡単に実現できるとは思います。


ラベルには、BackStyle というプロパティがあります。

このプロパティを fmBackStyleTransparent に設定することで、Visible プロパティを変更することなく、完全に透明なラベルを配置することが可能になります。ラベル自体は見えなくても存在していますので、クリックイベントは普通に発生します。

以下のサイトなどをご参考になさるとよろしいかと。

Excel Gamer - Shadow Slash Chapter.98 [ クリックゲーム3:クリック座標検知 ]

id:harunoharuno

回答ありがとうございました。

今回は(その他の原因かもしれませんがおそらく)

http://hanatyan.sakura.ne.jp/patio/read.cgi?no=90

に記載されている方法で透明にしているので

LabelのCaption部分

がクリックされたときしかイベントが発生しないようでした。

なのでCaptionがないときはイベントを拾うことができませんでした。

2010/10/14 10:45:48
id:taknt No.2

回答回数13539ベストアンサー獲得回数1198

ポイント90pt

マウスのmoveイベントで常にマウスの座標を取得し、クリック時のイベントで その最後に取得した座標にすればいいかと思います。

http://ziddy.japan.zdnet.com/qa1981749.html?order=DESC&by=dateti...

id:harunoharuno

回答ありがとうございます、、、

しかし、下記HPを参考に透明なフォームを作成されたところ

Moveイベントを取得できなくなるようです。

透明なフォームをあきらめるしかないのか・・・

http://hanatyan.sakura.ne.jp/patio/read.cgi?no=90

2010/10/14 11:03:56
id:taknt No.3

回答回数13539ベストアンサー獲得回数1198

ポイント80pt

http://hanatyan.sakura.ne.jp/vbhlp/ibe_Mouse.htm

マウスが 画面上のどこにあるのか座標を取得し、フォームの位置から割り出すというのは どうでしょうか?

id:harunoharuno

マウスがダイアログの上にあるときのイベントは拾うことが出来ませんでした。

タイマー関係のイベントを使えば、Windowsの画面上どこにカーソルが存在するか分かるかもしれませんが、今回そこまではしたくなかったためあきらめました。

2010/10/15 23:29:14

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません