TKH申します。
表示中のツールバーのある1つのボタンの絵に、状態に応じてAAAやBBBのテキスト文字を
書き加えるにはどのようにしたら良いのでしょうか。
環境 : Win2K + VC6 + SP5
ご教授お願いします。
MFCでよろしければ。。。
CToolBar::SetButtonText()を使います。
http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_TBtext.html
たまには、回答側に(^^)
回答ありがとうございます。
説明不足でしたが、やりたいことは、ツールバーのボタンに貼り付けている
ビットマップを取得し、そのビットマップに変更を加えたいのです。
よろしくお願いします。
==
TKH
試したこともないのですが、、、
あらかじめ文字を書き込んでおいたツールバーリソースを
作成しておいて、 CToolbar::LoadToolBar()したら
いけませんかね?
または2つのオブジェクトを切り替えてつかうとか。。。
(あらかじめ2つ、つくっておく)
ダメなら、ちょっと他に方法を思いつきません。
CToolBar::GetTooBarCtrl()でCToolBarCtrl()が得られます。
ボタンに書き込む文字列が固定で個数が決まっているなら、
あらかじめ必要なだけのボタンを用意しておき、
CToolBarCtrl::HideButton()で表示/非表示を切り替えればできそうです。
ボタンのビットマップに任意の文字列を書かねばならないなら、
CToolBarCtrl::GetImageList()でツールバーのイメージリストが
取得できますので、このイメージリストを適当に書き換えれば、
可能ではないでしょうか。
回答ありがとうございます。
状態に応じて書き込む文字は、その時の状態によりきまり、
100種類ぐらいになってしまいます。
>ボタンのビットマップに任意の文字列を書かねばならないなら、
>CToolBarCtrl::GetImageList()でツールバーのイメージリストが
>取得できます
この方法で、少し検討してみます。
大変遅くなりましたが、解決しましたので報告だけしておきます。
有難うございます。
CToobar::LoadBitmap()のソース部分を参考に以下のとおり行いました。
まず、ツールバーのビットマップをリソース(IDB_BITMAP1)をあらかじめ用意しておきます。
LPCTSTR lpszResourceName = MAKEINTRESOURCE( IDB_BITMAP1);
HINSTANCE hInstImageWell = AfxFindResourceHandle(lpszResourceName, RT_BITMAP);
HRSRC hRsrcImageWell = ::FindResource(hInstImageWell,
lpszResourceName, RT_BITMAP);
HBITMAP hbmImageWell;
hbmImageWell = AfxLoadSysColorBitmap( hInstImageWell, hRsrcImageWell);
//
//hbmImageWellを編集する
//
mytoolbar.AddReplaceBitmap( hbmImageWell);
AfxFindResourceHandle()
AfxLoadSysColorBitmap() <--この関数は大変便利です。
AddReplaceBitmap()
などの非公開関数を仕様することになりましたが、システムのツールバーの背景色に色を合わせ
るなどの処理が出来ました。
AfxLoadSysColorBitmap()関数は便利です。
==
TKH