VC中CToolBarCtrl的使用案例

void CBwGridPanel::CreateToolBar()
{
	CRect rect;
	GetWindowRect(rect);
	CRect rectTool;
	rectTool.top = 5;
	rectTool.left = 5;
	rectTool.right = rect.Width();
	rectTool.bottom = rectTool.top + 22;

	// 工具栏
	_toolBar.Create(WS_VISIBLE | WS_CHILD, rect, this, 0x53251);
	_toolBar.ModifyStyle(0, TBSTYLE_LIST);

	// 载入按钮
	UINT nBtnId[] = { IDC_PROGRESSPLAYER_NEW, IDC_PROGRESSPLAYER_NEWCHILD, IDC_PROGRESSPLAYER_DELETE,IDC_PROGRESSPLAYER_BIND, IDC_PROGRESSPLAYER_IMPORT, IDC_PROGRESSPLAYER_EXPORT,IDC_PROGRESSPLAYER_UP, IDC_PROGRESSPLAYER_DOWN,
	IDC_PROGRESSPLAYER_SAVE};
	
	CStringArray strBtnName;
	strBtnName.Add(_T("新建"));
	strBtnName.Add(_T("新建子集"));
	strBtnName.Add(_T("删除"));
	strBtnName.Add(_T("绑定"));
	strBtnName.Add(_T("导入"));
	strBtnName.Add(_T("导出"));
	strBtnName.Add(_T("上移"));
	strBtnName.Add(_T("下移"));
	strBtnName.Add(_T("保存"));

	int nNum = sizeof(nBtnId) / sizeof(nBtnId[0]);

	for (int i = 0; i < nNum; i++)
	{
		// 加入按钮
		TBBUTTON *pBtn = new TBBUTTON();
		pBtn->fsState = TBSTATE_ENABLED;
		pBtn->fsStyle = TBSTYLE_BUTTON;
		pBtn->idCommand = nBtnId[i];
		_toolBar.InsertButton(i, pBtn);
		TBBUTTONINFO btnInfo;
		btnInfo.pszText = strBtnName[i].GetBuffer();
		btnInfo.fsState = TBSTATE_ENABLED;
		btnInfo.fsStyle = TBSTYLE_BUTTON;
		btnInfo.idCommand = nBtnId[i];
		btnInfo.cbSize = sizeof(TBBUTTONINFO);
		btnInfo.dwMask = TBIF_TEXT;
		btnInfo.cchText = strBtnName[i].GetLength();
		strBtnName[i].ReleaseBuffer();
		_toolBar.SetButtonInfo(nBtnId[i],&btnInfo);

	}

	_toolBar.SetOwner(this);
	_toolBar.MoveWindow(rectTool);
	_toolBar.BringWindowToTop();
}

注意:TBBUTTONINFO 这个结构体如果属性没设置全则文字可能显示不出来。

posted @ 2022-07-23 16:39  香菇0_0  阅读(54)  评论(0)    收藏  举报