MFC设计之CMFCToolBar添加工具栏后按钮功能实现

CMFCToolBar添加工具栏按钮的功能实现

一、button函数的声明

  • 上一篇说到,工具栏定义到需要调用的dialog中,所以,函数的声明与定义也必然要在对应的dialog中,声明放在.h中,具体代码如下:
public:
	afx_msg void OnToolBarButtonback();
	afx_msg void OnToolBarButtonforw();
	afx_msg void OnToolBarButtonsave();
	afx_msg void OnToolBarButtonallsave();
	afx_msg void OnToolBarButtonstart();
	afx_msg void OnToolBarButtononline();
	afx_msg void OnToolBarButtonstop();

二、button函数的定义与实现

  • 因为每个人对于这个按钮的功能需求是不一样的,所以,我就简单实现成弹框吧,方便验证和调试。
void CXlCANcontrolDlg::OnToolBarButtonback()
{
	AfxMessageBox(_T("您按了打开 OnToolBarButtonback"));
}

void CXlCANcontrolDlg::OnToolBarButtonforw()
{
	AfxMessageBox(_T("您按了打开 OnToolBarButtonforw")); 
}
void CXlCANcontrolDlg::OnToolBarButtonsave()
{
	AfxMessageBox(_T("您按了打开 OnToolBarButtonsave"));
}
void CXlCANcontrolDlg::OnToolBarButtonallsave()
{
	AfxMessageBox(_T("您按了打开 OnToolBarButtonallsave"));
}
void CXlCANcontrolDlg::OnToolBarButtonstart()
{
	AfxMessageBox(_T("您按了打开 OnToolBarButtonstart")); 
}
void CXlCANcontrolDlg::OnToolBarButtononline()
{
	AfxMessageBox(_T("您按了打开 OnToolBarButtononline"));
}
void CXlCANcontrolDlg::OnToolBarButtonstop()
{
	AfxMessageBox(_T("您按了打开 OnToolBarButtonstop"));
}

三、处理button按钮的消息映射

  • 每个要触发的按钮都必须有映射,这样才能正常触发。
	ON_COMMAND(ID_BUTTONback, &CXlCANcontrolDlg::OnToolBarButtonback)
	ON_COMMAND(ID_BUTTONforw, &CXlCANcontrolDlg::OnToolBarButtonforw)
	ON_COMMAND(ID_BUTTONsave, &CXlCANcontrolDlg::OnToolBarButtonsave)
	ON_COMMAND(ID_BUTTONallsave, &CXlCANcontrolDlg::OnToolBarButtonallsave)
	ON_COMMAND(ID_BUTTONstart, &CXlCANcontrolDlg::OnToolBarButtonstart)
	ON_COMMAND(ID_BUTTONonline, &CXlCANcontrolDlg::OnToolBarButtononline)
	ON_COMMAND(ID_BUTTONstop, &CXlCANcontrolDlg::OnToolBarButtonstop)
  • 值得注意的是,ON_COMMAND(ID_BUTTONstop, &CXlCANcontrolDlg::OnToolBarButtonstop)ID_BUTTONstop是对应工具栏的button的ID,我这里是自己修改后的ID,我们在画按钮时可以根据自己的情况修改,这样方便别人能够准确的读懂代码。
  • 新手可能不知道ID在哪儿,见下图吧,顺便修改方法也见下图吧。


  • 修改就直接点击ID后面的框进行修改就OK了。

四、运行界面


好了整个工具栏就这么完成了,这是最简易的版本,很多人还有继承CMFCToolBar自己实现的类,那个就算是高级版了,我只是简单运用一下,就不深究了。

发布了84 篇原创文章 · 获赞 63 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/wsq119/article/details/103084236