在Vc中通过MFC为对话框增加工具栏,方法很多,有的只支持16色,但是这样编程相对简单。有的可以支持32色以上的真彩色,但是编程比较复杂。
这里给对话框增加了ICON图标做工具栏。编程方法如下:
1.在对话框头文件中Public中添加变量:
CToolBarCtrl m_toolbar;
CImageList m_ImageList;
2、为工程添加几个ICON的图标,
3、在Cpp文件中的:OnInitDialog()函数中加入:
const int ARRAY_MAX=5;
m_ImageList.Create(32,32,ILC_COLOR32|ILC_MASK,0,0);//创建一个图像列表
m_toolbar.EnableAutomation();
m_toolbar.Create(WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),this,ID_TOOLBAR);
UINT Resource[ARRAY_MAX]={IDI_ICON1,IDI_ICON2,IDI_ICON3,IDI_ICON4,IDI_ICON5};
int i;
TBBUTTON button[ARRAY_MAX];
for (i=0;i<ARRAY_MAX;i++)
{
m_ImageList.Add(::LoadIcon(::AfxGetResourceHandle(),/
MAKEINTRESOURCE(Resource[i])));
}
m_toolbar.SetImageList(&m_ImageList);
for (i=0;i<ARRAY_MAX;i++)
{
button[i].dwData=0;
button[i].fsState=TBSTATE_ENABLED;
button[i].fsStyle=TBSTYLE_BUTTON;
button[i].iBitmap=i;
}
m_toolbar.AddButtons(ARRAY_MAX,button);
TBBUTTON Wrap;
Wrap.dwData=0;
Wrap.fsState=TBSTATE_ENABLED;
Wrap.fsStyle=TBSTYLE_SEP;
m_toolbar.InsertButton(3,&Wrap);
m_toolbar.AutoSize();
m_toolbar.SetStyle(TBSTYLE_FLAT|CCS_TOP);
4、编译后界面如下:
5.问题研究:
一般性的工具栏可以通过class Wizard添加响应函数,但是,现在,以上代码的程序,
在classwizard中找不到工具栏的ID,故无法添加响应函数。手动添加响应函数,也不能得到响应,
如有在这方面有进一步造诣的同道中人请多多交流。
QQ:415522393