有的时候我们需要在一个工具条内放多排按钮,例如windows自带的画图软件,怎么实现呢?这里有一个小小的技巧,希望你能喜欢:)
首先假定我们的工具条资源号为IDR_PAINTTOOL; 我们从CToolBar类派生出一个CPaintToolbar类,添加一个受保护的成员变量: protected:UIN m_nColumns; file://排m_nColumns行 public: void SetColumns(UINT nColumns);//设置行数 UINT GetColumns() {return m_nColumns;}//获得行数 下面开始添加函数: void CPaintToolbar::SetColumns(UINT nColumns) { m_nColumns=nColums; 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(); } 好了,一切就这么简单。 
|