いつも参考にさせていただいております
前回は、コントロールにツールチップをつける方法を教えていただきました
(2003/10/31)
同様の方法を試みたのですが次の場合、ツールチップをつけることができません
①メニューにつける
②複数行のツールチップ
環境:Windows98SE VC++6.0 API使用
②複数行表示 できました
NEGさん ありがとうございました
長い間の試行錯誤は何だったんだろうと言う気もしますが
その分、できたときの嬉しさと有り難さを大きく感じます
質問の内容を変えます
メニューの内容の説明を表示できれば
ツールチップの代わりにEdit、STATIC、STATUS BAR 何でもよいのです
SDKでの方法が分かりません
メニューを所有しているウインドウのプロシージャで WM_MENUSELECT メッセージを処理すれ
ばご希望の動作を実現できるのではないでしょうか。
『猫でもわかるプログラミング』の「第306章 メニュー項目の説明をステータスバーに表
示する」を参考にするとよいと思います。
http://www.kumei.ne.jp/c_lang/sdk4/sdk_306.htm
Plasmaさん 有難うございます
猫でもわかるプログラミング
試してみました
1、ツールバーではツールチップが出る
2.WM_MENUSELECT
メニューアイテムをマウスダウンしたときにステータスバーに説明文がでる
ソフトにつけたい機能は、ツールチップのようにメニュー(ツールバーなし)の上にマウスを
持ってゆくだけで、説明文が表示されるものです
そういうことでしたら自分が提示した方法ではダメですね。
通常のメニューバーに対してご希望の動作を実現する方法は自分には分かりませんが、
別の方法として、メニューバーを作成せずにレバーコントロールを作成し、その子ウイン
ドウとしてツールバー(イメージ無し/テキストのみ)を作成することで実現することが
出来ると思います。
ツールバーボタンが押された時に自分でポップアップメニューを表示しなければならな
かったりと色々めんどくさいことが多そうですが、ツールバーボタンに対してチップヒン
トを表示することは容易に出来ると思います。
自分では試していませんが、またまた『猫でもわかるプログラミング』を参考にすれば
出来ると思います。
「第65章 ツールバーにツールチップをつける 」
http://www.kumei.ne.jp/c_lang/sdk/sdk_65.htm
「第311章 IE様メニューの試作 その1」
http://www.kumei.ne.jp/c_lang/sdk4/sdk_311.htm
ただし、今回の方法ではポップアップメニューに対してはチップヒントを表示すること
は出来ませんので、ポップアップメニューの説明は WM_MENUSELECT メッセージを処理し
て都合のよい場所(ステータスバー等)に表示する必要があります。
Plasma さんへ
しばらく在所(?)を離れていたため返事が遅れてしまいました
申し訳ありません
レバーコントロールは使ったことがなかったので、良い機会を与えていただきました
これから試してみます
その後、結果を報告します
①------------
>別の方法として、メニューバーを作成せずにレバーコントロールを作成し、その子ウイン
>ドウとしてツールバー(イメージ無し/テキストのみ)を作成することで実現することが
>出来ると思います。
> ツールバーボタンが押された時に自分でポップアップメニューを表示しなければならな
>かったりと色々めんどくさいことが多そうですが、ツールバーボタンに対してチップヒン
>トを表示することは容易に出来ると思います。
②-------------
> 「第311章 IE様メニューの試作 その1」
> http://www.kumei.ne.jp/c_lang/sdk4/sdk_311.htm
>
>ただし、今回の方法ではポップアップメニューに対してはチップヒントを表示すること
>は出来ませんので、ポップアップメニューの説明は WM_MENUSELECT メッセージを処理し
>て都合のよい場所(ステータスバー等)に表示する必要があります。
①メニューバーの代わりにレバーコントロールを利用する方法
--->できました
②今後トライします
③メニュー項目にツールチップをつけることはできませんでしたが、
WM_NCMOUSEMOVE
MenuItemFromPoint
GetMenuString
を使用して、最上位のメニュー項目については
マウスがメニュー項目の上にきたときに( BUTTONDOWN しないで)
説明文を表示することができました
ただ、ご指摘されたようにポップアップメニューについてはできませんでした
(MenuItemFromPointでも、マウスがポップアップメニュー上にある時の位置を取得できな
い)
Plasma様 ありがとうございました