CControlBarから派生したCMyBarと
CTreeCtrlから派生したCMyTreeがあります。
CMyBarのOnCreate()でCMyTreeをCreateしています。
ここで作ったツリーに自分で作ったツールヒントを表示させたいのですがどうしていいのか分か
りません。
CMyTreeのOnShowWindow()で
RECT rct ;
CToolTipCtrl* pTip = GetToolTips() ;
GetItemRect( itemSub, &rct, FALSE ) ;
pTip->AddTool( this, ヒント, &rct, ID_TOOLTIP ) ;
SetToolTips( pTip ) ;
このようにしているのですが、
ツリーのアイテムが表示しきれないときにアイテムの文字列が出る、
というデフォルトの動作しかしてくれません。
これをAddToolで指定した文字列を常に表示するにはどうしたらよいのでしょうか?
Windows2000
VC++ 6.0
MFC
>ツリーのアイテムが表示しきれないときにアイテムの文字列が出る、
ヒントは一度に1つしか出ないので、
これが出る時はヒントは出ないと思います。
それとも、アイテムが全部見えている場合でもヒントが出ないのでしょうか?
> それとも、アイテムが全部見えている場合でもヒントが出ないのでしょうか?
出ません。
逆に、アイテムが隠れたときに出るデフォルトのヒントは出したくないのです。
これが出ないようにできれば設定した文字列が出てくれるのでしょうか?
でもTVS_NOTOOLTIPSを使うと何も出なくなってしまうし。。。
>GetItemRect( itemSub, &rct, FALSE ) ;
>pTip->AddTool( this, ヒント, &rct, ID_TOOLTIP ) ;
GetItemRectの戻り値、rctの内容、AddToolの戻り値
は問題ないのでしょうか?
また、ツリーコントロールの場合、項目の位置は
ツリーを開いたり閉じたりすると移動してしまうので、
その辺りを考慮する必要があるのではないでしょうか?
> GetItemRectの戻り値、rctの内容、AddToolの戻り値
> は問題ないのでしょうか?
問題ありました。
rctのleftとrightが両方とも0でした…。
GetItemRect()の最後のパラメータをFALSEではなくTRUEにしたら
出るようになりました。
表示しきれないとデフォルトのが出てしまうんですけど
それはそれでいいことにしました。
> また、ツリーコントロールの場合、項目の位置は
> ツリーを開いたり閉じたりすると移動してしまうので、
> その辺りを考慮する必要があるのではないでしょうか?
そうですね。
次はその辺で悩んでみます。
どうもありがとうございました。