- PR -

CToolBarCtrlの使用方法について

1
投稿者投稿内容
wbird
会議室デビュー日: 2005/11/24
投稿数: 5
投稿日時: 2005-11-24 23:36
VC++.NET2003で開発しているものです。

CToolBarCtrlで先頭にセパレータを入れた後に一つだけボタンを
追加するときアイコンと文字列を渡しているのですがアイコンは
表示されるが文字列が表示されません。二つ以上ボタンを追加したら
二つとも文字列が表示されます。

デバッグでAddStringsの戻り値を見ても正常にインデックスが
返ってきます。

どなたか分かる方教えてもらえないでしょうか?
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2005-11-25 20:07
こんばんは。

なんだか、誰からも回答レスがなさそうなので、僭越ながら私が…
#私はツールバーコントロールは、一番苦手とするコントロールのひとつなのですが

wbirdさんの質問内容からでは、具体的な原因を指摘できませんが、
一応、下記のようなコードでボタンに文字列を表示することができますので
なにか参考にしてみてください。

コード:
	// ツールバーコントロールの作成
	if (!m_wndToolBarCtrl.Create(WS_VISIBLE | WS_TABSTOP | CCS_NOPARENTALIGN | CCS_NODIVIDER | TBSTYLE_FLAT | TBSTYLE_TRANSPARENT | TBSTYLE_TOOLTIPS | TBSTYLE_WRAPABLE | TBSTYLE_AUTOSIZE , rect, this, IDC_TOOLBAR)) {

		return -1;
	}

	// TBBUTTON構造体サイズを設定する
	m_wndToolBarCtrl.SetButtonStructSize(sizeof(TBBUTTON));

	// double null terminated の文字列を追加する。
	int iString[2];
	iString[0] = m_wndToolBarCtrl.AddStrings("ボタン1\\0");
//	iString[1] = m_wndToolBarCtrl.AddStrings("ボタン2\\0");

	// ツールバーにボタン追加

	TBBUTTON buttons[3];

	// セパレータ
	buttons[0].iBitmap = -1;
	buttons[0].idCommand = 0;
	buttons[0].fsState = TBSTATE_ENABLED;
	buttons[0].fsStyle = TBSTYLE_SEP;
	buttons[0].dwData = 0;
	buttons[0].iString = -1;

	// ボタン1
	buttons[1].iBitmap = 1;
	buttons[1].idCommand = IDC_COMMAND_1;
	buttons[1].fsState = TBSTATE_ENABLED;
	buttons[1].fsStyle = TBSTYLE_BUTTON;
	buttons[1].dwData = 0;
	buttons[1].iString = iString[0];

/*
	buttons[2].iBitmap = 1;
	buttons[2].idCommand = IDC_COMMAND_2;
	buttons[2].fsState = TBSTATE_ENABLED;
	buttons[2].fsStyle = TBSTYLE_BUTTON;
	buttons[2].dwData = 0;
	buttons[2].iString = iString[1];
*/

//	m_wndToolBarCtrl.AddButtons(3, buttons);
	m_wndToolBarCtrl.AddButtons(2, buttons);

	// サイズ調整など

	m_wndToolBarCtrl.SetMaxTextRows(1);

	CRect rcButton;
	m_wndToolBarCtrl.GetItemRect(1, rcButton);
	m_wndToolBarCtrl.SetButtonSize(rcButton.Size());

	m_wndToolBarCtrl.Invalidate();
	m_wndToolBarCtrl.AutoSize();

	m_wndToolBarCtrl.SetWindowPos(NULL, 0, 0, 0, 0, SWP_NOSIZE );


wbird
会議室デビュー日: 2005/11/24
投稿数: 5
投稿日時: 2005-11-28 15:11
Tdnr_Symさんありがとうございました。
うまく動くようになりました。

一づつボタンを追加しているやり方ではだめみたいですね。

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)