メニューにフォーカスが当たった時のイベントを受け取りたいのですが。

解決


☆くるめ☆  2005-06-20 15:14:37  No: 122800  IP: [192.*.*.*]

こんにちは。
メニューにはGotFocusイベントは無いみたいですが、
メニューにフォーカスが当たっときのイベントを受け取って
あるテキストボックスの色を変えたいのですが、
どうすればいいでしょうか?

編集 削除
マグ  2005-06-20 16:53:10  No: 122801  IP: [192.*.*.*]

>メニュー・・・・・

メニューをMainMenuとして、環境をVB.NETで話を進めますと、
Selectで出来ます。

編集 削除
☆くるめ☆  2005-06-20 17:16:20  No: 122802  IP: [192.*.*.*]

VB6では不可能でしょうか・・・

編集 削除
ぴろあき  2005-06-21 09:59:56  No: 122803  IP: [192.*.*.*]

サブクラス化して、
WM_NCMOUSEMOVEを受け取って、
第三引数がHTMENUならば、
テキストボックスの色を変えるという処理でよろしいかと。

編集 削除
☆くるめ☆  2005-06-22 14:25:37  No: 122804  IP: [192.*.*.*]

どのメニューにフォーカスが当たっているか判断が難しそうですね。
一番親の?メニューに当たっていれば座標でわかりそうですけど
開いている子の?メニューが難しそうです・・・
他に方法は無いでしょうか?

編集 削除
☆くるめ☆  2005-06-22 14:31:28  No: 122805  IP: [192.*.*.*]

できれば今フォーカスが当たっているオブジェクト名などわかればいいんですが。

編集 削除
。。。  2005-06-22 15:01:26  No: 122806  IP: [192.*.*.*]

少しは自分で調べろ。
ここはサポートセンターじゃない。

編集 削除
 2005-06-22 15:36:39  No: 122807  IP: [192.*.*.*]

調べれば出てくるような手抜きの質問なのか?
本当にわからないのか?

ここの掲示板の住人は敏感ですぞ
自分で調べて候補ぐらいは挙げてみよう!
そうすれば少しは調べようとしたということが伝わります。

が!
  >できれば今フォーカスが当たっている
  >オブジェクト名などわかればいいんですが。
ではとても自分で調べたとは伝わりません。

編集 削除
名言です  2005-06-22 15:44:50  No: 122808  IP: [192.*.*.*]

回答者を辞書代わりに使うのはやめて欲しいです。自力では解決が難しい、本当に助けを必要としてる人を助けたいですし、掲示板の容量増加の注意も管理人さんから受けています。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200410/04100105.txt
ヘルプを一通り読んでるかどうかで質問の内容が明らかに変わります。それに比例して回答量も格段に少なくなります。まずは自分で調べて下さい。

編集 削除
特攻隊長まるるう  2005-06-22 16:24:17  No: 122809  IP: [192.*.*.*]

↑うはっΣ(‾□‾)5分でこぴぺされた(汗)
…っつか、この質問者さんはサブクラス化の話に対しての感想を
見ればそれなりに使える人かもしれない…とは思うんです。
ただ『難しそうです』…じゃなくて作った上で『ここが難しかったです』
と書き込みできることを目指して欲しい。机上の論理と憶測で回答を
進めるのは難しいですから。

ちなみに自分独自のユーザインタフェースを組み込もうとする方は
たまにおられますが、
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200505/05050028.txt
推奨されてないです。

…さて、
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200506/05060136.txt
もそうですが、もう、メニューコントロールの動きでは無かったり、
標準コントロールの範疇を越えたりしてるかも?
ユーザコントロールとか API とかで自作することも考えてみては?

編集 削除
ねろ  2005-06-22 16:37:51  No: 122810  IP: [192.*.*.*]

なんとなく勘違いされて非難されてるような。。。。
Function MenuItemFromPoint Lib "user32.dll" _
(ByVal hWnd As Long, ByVal hMenu As Long, _
ptScreen As POINTAPI) As Long
名前からしてなんとなく出来そうな気が。。
ところで、メニューのハンドルなんてどうやって取るんだっけ。
役立たずですまん。(^^;

編集 削除
いな  2005-06-22 16:56:03  No: 122811  IP: [192.*.*.*]

>まるるう さん
>↑うはっΣ(‾□‾)5分でこぴぺされた(汗)

よ、有名人はつらいね。

>ねろ さん
>メニューのハンドルなんてどうやって取るんだっけ。

http://madia.world.coocan.jp/vb/VBKANREN.htm
によると、GetMenu(メニューのハンドルを取得する)
が使えそうな予感。

編集 削除
ねろ  2005-06-22 17:56:30  No: 122812  IP: [192.*.*.*]

すいません、いなさん。
私もそこまで調べたんですが、つい勢いで書いてしまって。。。
ということで、出来そうな雰囲気なんで、後は☆くるめ☆さんの
努力と言うことで。

編集 削除
じゃんぬねっと  URL  2005-06-22 18:04:15  No: 122813  IP: [192.*.*.*]

.NET Framework なんですよね?

MenuItem のハンドル自体は Handle プロパティで取れば良いのでは?
メニュー ID となれば話は別ですが。

編集 削除
いな  2005-06-22 18:05:08  No: 122814  IP: [192.*.*.*]

>ねろ さん
>私もそこまで調べたんですが、つい勢いで書いてしまって。。。

心当たりがあったんで、ぢつは、調べるというか、
過去に投稿したコピペだったりします。

#本当は『よ、有名人はつらいね。』が投稿したかっただけど
#それだけでは、余りにもさびしいので、気まぐれです。

編集 削除
じゃんぬねっと  URL  2005-06-22 18:05:55  No: 122815  IP: [192.*.*.*]

げ、2 レス目しかみてなかった...
VB6 だった... 本日は誤爆日よりなので帰って寝ます。orz

編集 削除
いな  2005-06-22 18:07:08  No: 122816  IP: [192.*.*.*]

あれ?.Netなの?

編集 削除
mnu  2005-06-23 11:06:27  No: 122817  IP: [192.*.*.*]

>> サブクラス化して、
>> WM_NCMOUSEMOVEを受け取って、

> どのメニューにフォーカスが当たっているか判断が難しそうですね。
> 開いている子の?メニューが難しそうです・・・

WM_MENUSELECTメッセージを受け取ったら、
選択項目のID --> キャプション --> オブジェクト名
の順に繋いで行けばいいかも。(同じキャプションが複数在るとダメか)

編集 削除
☆くるめ☆  2005-06-28 17:37:55  No: 122818  IP: [192.*.*.*]

なぜ批判を受けたのかはわかりませんが、難しいといったのは
処理的に判断するのが難しいといった意味で調査がめんどうという
意味ではありません。もしくは私の力、理解不足です。

親メニューにはフォーカスをマウスを当てるだけでクリックイベントが
来るようです。

どうもすいませんでした。

編集 削除
名無し  2005-07-01 23:03:56  No: 122819  IP: [192.*.*.*]

>>なぜ批判を受けたのかはわかりませんが

 >>少しは自分で調べろ。
 >>とても自分で調べたとは伝わりません。
 >>回答者を辞書代わりに使うのはやめて欲しいです。
 >>作った上で『ここが難しかったです』と書き込みできることを目指して欲しい。

これだけ言われてもわからない?

編集 削除