标题为VC对话框添加工具条
栏目软件世界
作者孟学桢
发布2000年第4期
对于基于对话框的应用程序,MFC AppWizard还没有对工具条的支持,但可以通过使用CToolBar类来构造生成工具条,我们下面介绍如何为对话框程序添加工具条。
用MFC AppWizard(EXE)生成一个基于对话框的应用程序,接受其默认设置,取名为demodialog。
给应用程序添加一个Toolbar的名称为IDR_TOOLBAR1的工具条资源,名称分别如下:
ID_NEW //生成新的程序等
ID_FILE_OPEN //打开文件
ID_FILE_SAVE //保存文件
ID_EXIT //退出程序
然后在对话框的头文件中添加如下的成员变量:
CToolBar m_wndToolBar;
在resoure编辑框中编辑这些toolbar资源,设置好大小和彼此的距离,添加工具条前,需要初始化工具条,添加如下所示的代码到demodialog.cpp的OnInitDialog()函数中。
如果要使工具条是平面浮动的,可以添加如下的代码到对话框初始化函数中。
……
if(!m_wndToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)||!m_wndToolBar.LoadToolBar(IDR_TOOLBAR1))
{
TRACE0("创建工具条失败\n");
return -1;//不能创建,返回报-1
}RepositionBar
s(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);//定位工具条
……
如果要使工具条是立体静态的,添加如下的代码到对话框初始化函数中。
……
if(!m_wndToolBar.Create(this)||!m_wndToolBar.LoadToolBar(IDR_TOOLBAR1))
{
TRACE("创建工具条失败\n");
return -1;//不能创建,返回
}RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);//定位工具条
……
编译生成的程序,就实现了对话框的工具条,如果需要添加另外的对话框的工具条代码实现,用ClassWizard为工具条添加消息映射即可。