■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#38672-0
マウスがボタンやツリービューに触れたときにメッセージを出したいのですが
shionです。初めて投稿します。
初心者なのでうまく説明できないかもしれませんが
よろしくお願いします。

現在簡単なツールを作っています。
それにはツールボタン・ツリービュー、そしてヒントを表示させたいラベルがあります。
やりたいことはツールボタンには3つボタンがあるのですが、
それぞれ違った文章をラベルに表示させたいのです。
もちろんツリービューも同等に表示させたいのです。

表示させるタイミングはマウスがボタンや、ツリービューに触れたとき。
クリックではありません。押すことでもありません。
ガイド表示でもありません。。
<黄色いヘルプみたいなもの。(ToolTipTextは書きましたので。)

HPのJAVAScriptのOnMouseイベントみたいにマウスがのっかったら表示させるということ
VBではできるのでしょうか?

ご指導いただけたらと思います。
つたない説明で申し訳ありませんがよろしくお願いします。
#38694-0
RE#38672:マウスがボタンやツリービューに触れたときにメッセージを出したいのですが
> やりたいことはツールボタンには3つボタンがあるのですが、
ツールボタンの方はあんまりやったことがないので、コメントできません。

> それぞれ違った文章をラベルに表示させたいのです。
> もちろんツリービューも同等に表示させたいのです。

ツリービューの場合は、例えばこんなふうにすればできます。
詳細はHitTestメソッド(とその関連)のヘルプをご覧下さい。(使用例も)

Private Sub Form_Load()
    TreeView1.Nodes.Add , , "root", "あいう1"
    TreeView1.Nodes.Add "root", tvwChild, , "あいう2"
    TreeView1.Nodes.Add , , , "あいう3"
    TreeView1.Nodes.Add , , , "あいう4"
End Sub

Private Sub TreeView1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    Dim nodeX As Node
    
    Set nodeX = TreeView1.HitTest(x, y)
    If Not nodeX Is Nothing Then
        Label1.Caption = nodeX.Text
    Else
        Label1.Caption = "なし"
    End If
End Sub

> 表示させるタイミングはマウスがボタンや、ツリービューに触れたとき。
> クリックではありません。押すことでもありません。
コントロール上の該当項目に来たときにその項目の説明を表示したいとかそういうのですよね?

> ガイド表示でもありません。。
> <黄色いヘルプみたいなもの。(ToolTipTextは書きましたので。)
ToolTipTextで何か不都合があるのでしょうか?
コントロールに対して一つしかないという理由であれば、
どの項目上にマウスがあるか?によってその内容を書き換えるだけで対応できますよ。
#38703-0
RE#38694:マウスがボタンやツリービューに触れたときにメッセージを出したいのですが
shionです。

レスありがとうございます。
やはり説明不足でした。申し訳ありません。

> > 表示させるタイミングはマウスがボタンや、ツリービューに触れたとき。
> > クリックではありません。押すことでもありません。
> コントロール上の該当項目に来たときにその項目の説明を表示したいとかそういうのですよね?
そうなのです。

> > ガイド表示でもありません。。
> > <黄色いヘルプみたいなもの。(ToolTipTextは書きましたので。)
> ToolTipTextで何か不都合があるのでしょうか?
画像を組み込んだ文章を表示したかったので。

> コントロールに対して一つしかないという理由であれば、
> どの項目上にマウスがあるか?によってその内容を書き換えるだけで対応できますよ。
コントロールに対してひとつではないのです。。。

ツリービュー内のノードに対する名前付けのルールを説明したかったのです。
たとえば一階層目にマウスがかかると「一階層目はアルファベットでの名前です。8文字以内で名前を付けてください。」など。
二階層目もおなじく長い文章となり、画像を入れて説明したかったのでToolTipTextと組み合わせて
使いたかったのです。

少し説明がわかりにくいかもしれません。。。(少しどころの騒ぎじゃないですね。)

VBではここまでできないものでしょうか?
hpであればJavaScriptのOnMouseのような画像にマウスがかかると、画像の説明が隣に表示される・・・
みたいなものはむりなのかしら?

よろしくお願いします。。。
#38709-0
RE#38703:マウスがボタンやツリービューに触れたときにメッセージを出したいのですが
 VBではここまでできないものでしょうか?
> hpであればJavaScriptのOnMouseのような画像にマウスがかかると、画像の説明が隣に表示される・・・
> みたいなものはむりなのかしら?
> 
> よろしくお願いします。。。

  要するにツールチップに画像を表示できればいいんですよね?
  ツールチップ用のフォームを作成し、そこに表示しては如何でしょうか?

  ボタンやツールバー上にマウスが移動(MouseMoveイベント)
  その時、ツールチップ用フォーム(ピクチャーとラベルが貼られている)を表示する

  但し、通常フォームを表示するとフォーカスが移っちゃうので
  API関数 ShowWindow の第2引数を「SW_SHOWNA = 8」にして表示する必要が有りますね。
  その他、ツールチップのサイズ調整や表示位置が少し難しいかもしれません。
  ちなみに、API関数 GetCursorPosで現在のカーソル位置を取得できますよ。
  それらを組み合わせれば、可能かと思います。
  
  期待している内容と違っていたら、ごめんなさいね。
#38714-0
RE#38703:マウスがボタンやツリービューに触れたときにメッセージを出したいのですが
> たとえば一階層目にマウスがかかると「一階層目はアルファベットでの名前です。8文字以内で名前を付けてください。」など。
> 二階層目もおなじく長い文章となり、画像を入れて説明したかったのでToolTipTextと組み合わせて
> 使いたかったのです。

この内容なら、先の回答でできるのですが・・・。
HitTestメソッドではマウスのある位置のNodeオブジェクトを返します。
ですので、そのNodeオブジェクトを調べれば、一階層目だとか二階層目だとかの判断も付きますし、
判断さえ付けば、後はTooTipTextを切り替えて使うのも、Labelに文字を表示させるのも、
PictureBoxに画像を表示させるのも違いはありません。

>hpであればJavaScriptのOnMouseのような画像にマウスがかかると
ここの部分が先の回答です。
#38769-0
RE#38714:マウスがボタンやツリービューに触れたときにメッセージを出したいのですが
レスを下さった方、ありがとうございました。

結局ラベルには画像と文章が一緒に表示できないということで
リッチテキスト内をプログラムで細かく指定する方法をとりました。

表示するタイミングはアドバイスで教えていただいたHitTestメソッドを
使ってみようと思います。

API関数まではたどりついてはいませんが、フォーカスの問題の時、参考にさせていただきます。

つたない説明でたくさんのアドバイスをいただきありがとうございました。
このページと関連する記事:
#4631-0マウスで表示1999-12-28(火) 06:52
#32465-0TreeViewのドラックアンドドロップ2000-10-25(水) 17:44
#4102-0ツリービューでのドラッグ&ドロップ1999-11-15(月) 16:25
#10774-0ツリービューに関して1999-12-01(水) 19:25
#36799-0ツリービューの階層が間延びした感じになってしまう2001-01-12(金) 18:25
#31804-0メニューバー??2000-10-17(火) 00:09
#19690-0マウスポインタの取得2001-03-20(火) 00:53
#25376-0いくつかおしえてほしいのですが2001-12-15(土) 18:10
#10545-0ツリービューのドラッグドロップについて2000-05-15(月) 19:30
#8386-0ツリービューの使い方2000-05-30(火) 13:53
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)