開発じたばた日誌

前へ●●●次へ
じたばた日誌目次へ戻る
TSUCHY Softへ戻る


FileSum CImageList編

 CImageListは比較的うまくいった仕事です。こいつは同じ大きさのビットマップをずらずらと並べたようなもので、 1番目の絵とか14番目の絵を表示してくれと頼めば、やってくれるありがたいクラスです。おまけに透明が使えます。 ビットマップで透明をどうやって使うかって?たとえば背景を紫色にして、「紫は透明の意味だよ」と教えてやるのです。 意外につまらないのでがっかりしたでしょう。でもどんな派手に見えるアプリでも地道な処理の積み重ねなんですよ。

 ボタンに影も付けた。ドライブ名の文字もいれた。なかなかいいじゃない。よし、次はツールチップだ!

FileSum ツールチップ編

 ツールチップとは、ボタンの上にマウスを移動させ、しばらくするとぴろっと説明が出てくるあれのことです。 この機能は私がとても感心したものです。メニューは文字があるからつまらない反面わかりやすいけど、 アイコンボタンは面白いけどなにをするものかわかりませんね。このわかりにくさをツールチップが解消してくれています。

 ツールチップに限らず、ツールバー、ステータスバー、さらにはメニューなんていうインターフェースを考え出した人はえらいですね。 メニューなんて今では当然のものだけど、あれだけコンパクトなスペースに階層化してどれだけでも機能を追加できる方法を考え出した なんてすごいと思いませんか?

 私はDOSからの移行組なので、「何ができるのか全てが目の前に示されている」という点も非常に感心した所です。

 さて話が横にそれましたが、ツールチップもどはまりでした。 ツールバーを標準的に使えばそうでもないのでしょうが、私はツールバー上にダイナミックにドライブ用ボタンを作っています。 ですからツールチップも自分で出るようにしないといけません。 ドライブボタンのツールチップがでてもそんなにありがたくないのですが、やっぱり出してみたいのが人情です。

 しかしなにもでません。このなにも起こらないというのはとても困ります。 どこが悪いのかまったくわかりません。せめてぐちゃぐちゃなものでも出てくれればヒントにでもなるのですが。

EnableToolTips、m_tooltip.Create、m_tooltip.Activate、m_tooltip.AddTool
どれもちゃんとやってるじゃないか。どうして出ないんだ。ヘルプを隅々まで読んだけど、やっぱりこれであってるはずだ。 だんだん頭が加熱していくのが自覚できます。どうしてもわからない。

 偶然VC++の機能にコンポーネントの追加というのがあって、そこでツールチップを追加できるようになっています。 これで実験してみよう。どれどれどんなコードをつくるのかな?

 なぬー!! PreTranslateMessageにRelayEvent()なるツールチップのメンバ関数が書いてあるぞ。 こんなことヘルプに書いてあったかい??

 RelayEventをたった一行追加しただけで、私のツールチップはみごとに表示されました。 この一行を突き止めるのに何日使ったことか。トホホ。

やっとでたツールチップ