VC 添加ToolBar
(2011-08-15 17:43:39)
标签:
vctoolbarit |
分类: VC资料 |
1.首先在要添加工具条的对话框或者mfc框架的头文件中添加代码:
public:
2.在相应的源文件中(.cpp文件)的OnInitDialog()函数(对于基于对话框的mfc程序)或者OnCreate()函数(对于基于单文档的mfc程序)中添加代码:
或者添加如下代码:
3.在第2步所述的源文件中添加消息映射,例如:
ON_COMMAND(ID_FileOpen,OnToolEvent)
//ID_FileOpen为工具条中其中一个按钮的ID号
//OnToolEvent是为这个工具条按钮定义的事件函数名
4.在第1步所述的头文件中生成消息映射函数原型,例如:
5.最后在源文件中添加函数的实现代码
void
CXXXDlg::OnToolEvent()
{
说明:
pParentWnd指定所属窗口。
dwStyle
CBRS_TOP
CBRS_BOTTOM
CBRS_NOALIGN
CBRS_TOOLTIPS
CBRS_SIZE_DYNAMIC
CBRS_SIZE_FIXED
CBRS_FLOATING
CBRS_FLYBY
CBRS_HIDE_INPLACE
SetButtonStyle()函数用来设定命令按钮的风格或间隔区,或设为一组,按钮的风格决定了按钮的外貌和对用户的反应方式.
Void SetButtonStyle(int nIndex,UINT nStyle);
nIndex
nStyle
ControlBar类的EnableDocking函数和CFrameWnd类的DockControlBar函数配合,设定工具栏的可活动性.
Void
CBRS_ALIGN_TOP
CBRS_ALIGN_BOTTOM
CBRS_ALIGN_LEFT
CBRS_ALIGN_RIGHT
CBRS_ALIGN_ANY
CBRS_FLOAT_MULTI
Void DockControlBar(….)
pBar
nDockBarID指定允许浮动的位置,或为0则不允许浮动,可以由下列值组合而成:
AFX_IDW_DOCKBAR_TOP
AFX_IDW_DOCKBAR_BOTTOM
AFX_IDW_DOCKBAR_LEFT
AFX_IDW_DOCKBAR_RIGHT
改变工具栏的命令按钮风格,工具栏的按钮一般默认为命令按钮,当放开标鼠标,命令按钮就”弹出来”,如果我们希望命令按钮能留在被按上的状态,就可以把命令按钮的风格设为确认框。在ON_UPDATE_COMMAND_UI消息处理函数中,使用SetCheck()成员函数和SetRadio()成员函数改变按钮状态。
SetCheck()的参数0表示删除状态,1表示确认状态,2表示不确认状态
SetRadio()的参数0表示删除状态,非0表示确认状态。
我们用应用程序向导建立一个单文档程序,在工具栏中添加按钮,ID设定为ID_TIME.在CMainFrame类添加一个布尔数据类型m_bTime,初始值为false.
Ctrl+w添加ID_TIME的ON_COMMANDT和ON_UPDATE_COMMAND_U消息响应函数。
void CMainFrame::OnShowTime()
{
}
void CMainFrame::OnUpdateShowTime(CCmdUI * pCmdUI)
{
}
注意如果有一个同ID的菜单,它会自动根据按钮的情况打上钩钩。
事实上我们可以不用toolbar资源建立一个工具条。代码如下:
UINT nID[]=
其中位图的大小要合适,否则会影响美观,最后一行让几个ID与工具栏的按钮和相关。
如果想设置每个按钮的风格,可以将最后一行后面加:
也可m_wndToolBar.Create(this);
1,
2,
CRect rect;
插入一个对话框,Styles的style设为child,border设为none.
在CMainFrame中m_wndToolBar的改成CDialogBar,并加一个CBitmapButton bb;
把建立工具条的那一句改为:
m_wndToolBar.Create(this,IDD_DIALOG1,WS_CHILD|WS_VISIBLE|CBRS_TOP,AFX_IDW_STATUS_BAR);
最后一上ID
对按钮进行整理,它们的处理函数仍然上Ctrl+w加。将按钮Styles的Owner drawer和bitmap钩上。在刚才的地方加一句。
bb.AutoLoad(IDC_BUTTON1,&m_wndToolBar);
注意你需要加三幅位图(一幅也可以)。如你的按钮的名字为X,刚三幅位图的名字分别为”XUP”,”XDOWN”,”XFOCUS”,简写为”XU”,”XD”,”XF”