小技巧:一个工具条内放多排按钮
有的时候我们需要在一个工具条内放多排按钮,例如windows自带的画图软件,怎么实现呢?这里有一个小小的技巧,希望你能喜欢:)
首先假定我们的工具条资源号为IDR_PAINTTOOL;
我们从CToolBar类派生出一个CPaintToolbar类,添加一个受保护的成员变量:
protected:UIN m_nColumns; 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();
}
好了,一切就这么简单。
- · 快捷方式的函数
- · WTL体系结构(2)
- · 恶草丛生的阴暗角落---虚拟机制(下)
- · 深度解析VC中的消息(下)
- · 数据结构学习(C++)——队列应用(事件驱动模拟)
- · 新手对COM的认识及疑惑
- · 全面解读WM_NOTIFY
- · 开发集成Microsoft Visual Basic for Application的应用系统(一)
- · 浅谈 MFC 的子类化机制和该机制的一个应用(1)
- · 深度剖析消息反射机制
- · 浅谈 MFC 的子类化机制和该机制的一个应用(2)
- · 我的CLog的实现
- · Hello World by Microsoft Speech SDK 5.1
- · 初级X编程2
- · 彻底粉碎“指针与数组的困惑”(上)
- · ADSL组建局域网快捷方案
- · ADSL组建局域网快捷方案
- · 形形色色的自定义消息(上)
- · 数据结构学习(C++)——线性链式结构总结(代后记)【1】
- · vc入门宝典(九)
- · 形形色色的自定义消息(下)
- · C++中的预处理(上)
- · 非常时期突现网络办公的魅力!
- · asp_dll
- · 学Java,观GP
- · 怎样写一个 NT 服务程序
- · 代码优化试验——短循环优化(上)
- · 代码优化试验——短循环优化(下)
- · =========<C++未眠夜---我学习C++的心路历程>========
- · BOOK
- · 读《Efficient C++》疑惑
- · C++中的预处理(下)
- · DSP v1.0--序列化和反序列化对象和DNS v1.0--得到域的邮件服务器
- · C++入门解惑(0)——序
- · 代码自动完成、文档自动生成、提高开发效率----介绍VcExtend
- · “瑜珈山夜话”---序
- · C++入门解惑(1)——浅析cout
- · VC6使用#pragma warning的一点经验
