這是MSDN的例子,紀(jì)錄于此,便于查找。有的時候需要讓TOOLBAR呈多列顯示,TBSTATE_WRAP表示讓工具欄換行,而TBBS_WRAPPED是MFC中定義的一個宏MAKELONG(0, TBSTATE_WRAP),下面的代碼是MFC例子CTRLBARS中的。說明了如何設(shè)置多列的工具欄。
void CPaletteBar::SetColumns(UINT nColumns)
{
???????m_nColumns = nColumns;
???????int nCount = GetToolBarCtrl().GetButtonCount();
???????for (int i = 0; i < nCount; i++)
???????{
??????????????UINT nStyle = GetButtonStyle(i);
??????????????BOOL bWrap = (((i + 1) % nColumns) == 0);
??????????????if (bWrap)
?????????????????????nStyle |= TBBS_WRAPPED;
??????????????else
?????????????????????nStyle &= ~TBBS_WRAPPED;
??????????????SetButtonStyle(i, nStyle);
???????}
???????Invalidate();
???????GetParentFrame()->RecalcLayout();
}