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


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

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

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

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

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

回答の条件
  • URL必須
  • 1人2回まで
  • 13歳以上
  • 登録:2010/10/13 23:43:46
  • 終了:2010/10/17 12:19:48

ベストアンサー

id:doxas No.1

doxas回答回数13ベストアンサー獲得回数42010/10/14 00:51:01

ポイント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

doxas回答回数13ベストアンサー獲得回数42010/10/14 00:51:01ここでベストアンサー

ポイント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

きゃづみぃ回答回数13537ベストアンサー獲得回数11982010/10/14 09:24:04

ポイント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

きゃづみぃ回答回数13537ベストアンサー獲得回数11982010/10/14 13:18:07

ポイント80pt

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

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

id:harunoharuno

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

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

2010/10/15 23:29:14

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません