ツールバーの絵を変えるには? – プログラミング – Home

ツールバーの絵を変えるには?
 
通知
すべてクリア

[解決済] ツールバーの絵を変えるには?


TKH
 TKH
(@TKH)
ゲスト
結合: 22年前
投稿: 6
Topic starter  

TKH申します。

表示中のツールバーのある1つのボタンの絵に、状態に応じてAAAやBBBのテキスト文字を
書き加えるにはどのようにしたら良いのでしょうか。

環境 : Win2K + VC6 + SP5

ご教授お願いします。


引用未解決
トピックタグ
kai
 kai
(@kai)
ゲスト
結合: 23年前
投稿: 64
 

MFCでよろしければ。。。

CToolBar::SetButtonText()を使います。

http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_TBtext.html

たまには、回答側に(^^)


返信引用
TKH
 TKH
(@TKH)
ゲスト
結合: 22年前
投稿: 6
Topic starter  

回答ありがとうございます。

説明不足でしたが、やりたいことは、ツールバーのボタンに貼り付けている
ビットマップを取得し、そのビットマップに変更を加えたいのです。

よろしくお願いします。

==
TKH


返信引用
kai
 kai
(@kai)
ゲスト
結合: 23年前
投稿: 64
 

試したこともないのですが、、、

あらかじめ文字を書き込んでおいたツールバーリソースを
作成しておいて、 CToolbar::LoadToolBar()したら
いけませんかね?

または2つのオブジェクトを切り替えてつかうとか。。。
(あらかじめ2つ、つくっておく)

ダメなら、ちょっと他に方法を思いつきません。


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

CToolBar::GetTooBarCtrl()でCToolBarCtrl()が得られます。

ボタンに書き込む文字列が固定で個数が決まっているなら、
あらかじめ必要なだけのボタンを用意しておき、
CToolBarCtrl::HideButton()で表示/非表示を切り替えればできそうです。

ボタンのビットマップに任意の文字列を書かねばならないなら、
CToolBarCtrl::GetImageList()でツールバーのイメージリストが
取得できますので、このイメージリストを適当に書き換えれば、
可能ではないでしょうか。


返信引用
TKH
 TKH
(@TKH)
ゲスト
結合: 22年前
投稿: 6
Topic starter  

回答ありがとうございます。

状態に応じて書き込む文字は、その時の状態によりきまり、
100種類ぐらいになってしまいます。

>ボタンのビットマップに任意の文字列を書かねばならないなら、
>CToolBarCtrl::GetImageList()でツールバーのイメージリストが
>取得できます

この方法で、少し検討してみます。


返信引用
TKH
 TKH
(@TKH)
ゲスト
結合: 22年前
投稿: 6
Topic starter  

大変遅くなりましたが、解決しましたので報告だけしておきます。
有難うございます。

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


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました