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

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

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

Re[5]: ボタン上でもX1ボタンなどのイベントがフォームに来るには?


(過去ログ 72 を表示中)

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

■42328 / inTopicNo.1)  ボタン上でもX1ボタンなどのイベントがフォームに来るには?
  
□投稿者/ どどど初心者 (1回)-(2009/10/13(Tue) 18:00:45)

分類:[VB.NET/VB2005 以降] 

ものすごく初心者です
難しい言葉を使われると理解できないアホなのですが・・・

VB.NET2008expで
マウスカーソルのフォーカスがボタン上に来ている場合右クリックやX1、X2のイベントがクリックされても発生しないのですが
フォーム上どこにカーソルがあってもX1などの入力を可能にする方法は無いでしょうか?

色々と調べてみたのですが
Cのdllを使うとか、グローバルフックを使うとかWH_MOUSE_LL SetWindowsHookExを使うとか
出てくるのですが、一向に意味が理解できません(^^;;;

単純にボタンの上でも右クリックしたら(単純にテキストにOKと表示するようなイベント)ができるようなサンプルは無いでしょうか?

WParamなどを使った場合は一応出来るのですが一度フォーム上のボタン(Button1など)を押してしまうと
ボタンの外をもう一度右クリックしないと再びボタン上で有効にはなりませんでした

説明されてもさっぱり理解が難しいので実際に動くサンプルを読み解くくらいしか
前に進める気がしないのです

なにとぞ助力の程を宜しくお願いします
引用返信 編集キー/
■42329 / inTopicNo.2)  Re[1]: ボタン上でもX1ボタンなどのイベントがフォームに来るには?
□投稿者/ ひよこ (4回)-(2009/10/13(Tue) 18:27:29)
ちょっと意味がわからなかったのですが、ボタン上で右クリックしたらOKを表示するんだけでいいんでしょうか?

それとも、左クリックや右クリックによって場合わけするんでしょうか?
引用返信 編集キー/
■42332 / inTopicNo.3)  Re[1]: ボタン上でもX1ボタンなどのイベントがフォームに来るには?
□投稿者/ Jitta on the way (462回)-(2009/10/13(Tue) 18:39:53)
No42328 (どどど初心者 さん) に返信
> マウスカーソルのフォーカスがボタン上に来ている場合右クリックやX1、X2のイベントがクリックされても発生しないのですが
> フォーム上どこにカーソルがあってもX1などの入力を可能にする方法は無いでしょうか?

「X1、X2のイベント」って、なんですか?


> 単純にボタンの上でも右クリックしたら(単純にテキストにOKと表示するようなイベント)ができるようなサンプルは無いでしょうか?

ここも、わかりません。「テキストにOKと表示するような」イベントって、なんでしょう?「表示する」のは、プロセスで、イベントではないと思います。



> 説明されてもさっぱり理解が難しいので実際に動くサンプルを読み解くくらいしか
> 前に進める気がしないのです

訳もわからずコードを読み解く方が難しいと思います。
引用返信 編集キー/
■42341 / inTopicNo.4)  Re[2]: ボタン上でもX1ボタンなどのイベントがフォームに来るには?
□投稿者/ やじゅ (1376回)-(2009/10/14(Wed) 00:42:40)
やじゅ さんの Web サイト
> ■No42328 (どどど初心者 さん) に返信
>マウスカーソルのフォーカスがボタン上に来ている場合右クリックやX1、X2のイベントがクリックされても発生しないのですが
>フォーム上どこにカーソルがあってもX1などの入力を可能にする方法は無いでしょうか?

X1、X2ボタンって聞きなれないと思って調べてみると、5ボタンマウスのサイドにある拡張ボタンのことですね。

右クリックであれば、MouseDownまたはMouseUpイベントで処理すれば可能です。
Private Sub Form_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles MyBase.MouseDown
    If e.Button = MouseButtons.Right Then
        MessageBox.Show("MouseDown 右")
    End If
End Sub

X1、X2のイベントがクリックのやり方は分からなかったですけど、DirectInputを使うといいのかも
下記サイトがなんらかのヒントになるのかな・・・

VBでマウスの動きを捉える方法(VB2005 + DirectInput編)
http://www.geocities.co.jp/SiliconValley/7406/tips/mouse/mouse3.html

引用返信 編集キー/
■42348 / inTopicNo.5)  Re[3]: ボタン上でもX1ボタンなどのイベントがフォームに来るには?
□投稿者/ Hongliang (483回)-(2009/10/14(Wed) 02:21:16)
> 右クリックであれば、MouseDownまたはMouseUpイベントで処理すれば可能です。
> Private Sub Form_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles MyBase.MouseDown
他のコントロールにフォーカスがある間は Form.MouseDown には来ない、というのが問題でしょう。
IMessageFilter でハンドルするのが一番楽かな。Form に実装するようにすれば直接 OnMouseDown / OnMouseUp も呼び出せるし。
引用返信 編集キー/
■42350 / inTopicNo.6)  Re[4]: ボタン上でもX1ボタンなどのイベントがフォームに来るには?
□投稿者/ やじゅ (1381回)-(2009/10/14(Wed) 02:55:20)
やじゅ さんの Web サイト
No42348 (Hongliang さん) に返信
> IMessageFilter でハンドルするのが一番楽かな。Form に実装するようにすれば直接 OnMouseDown / OnMouseUp も呼び出せるし。

IMessageFilterって知らなかった・・・、便利そうですね。

Applicationクラスを使ってメッセージを処理する
http://www15.ocn.ne.jp/~sunsan-k/sunsank.files/sunsan/d-net/Csharp_index/Chap8/C8-4.html
引用返信 編集キー/
■42379 / inTopicNo.7)  Re[5]: ボタン上でもX1ボタンなどのイベントがフォームに来るには?
□投稿者/ どどど初心者 (2回)-(2009/10/14(Wed) 15:02:35)
返答ありがとうございます

初心者の為説明が悪くてわかりにくくて申し訳ありませんでした

内容的にはHongliangさんの解釈で完璧です
是非調べて試してみます

あと完全なサンプルを見つけたのでそれをいじりながら
がんばってみたいと思います

ひとまず解決済みとして閉じますが
本当にありがとうございました

またなにかいきづまったら質問させて下さい
宜しくお願いします
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -