引自免费微信小程序:皆我百晓生
在MFC中,为了处理工具栏按钮的点击事件,你需要为每个按钮创建一个消息映射,并设置相应的响应函数。下面是一个详细的步骤来实现这个功能。
- 首先,在你的视图类(通常是CView派生类)的头文件中声明响应函数。例如,我们为三个按钮分别命名为ID_ADD、ID_EDIT和ID_DELETE,可以这样定义函数:
afx_msg void OnAdd();
afx_msg void OnEdit();
afx_msg void OnDelete();
- 在视图类的源文件中实现这三个函数:
void CYourView::OnAdd()
{
// 处理"添加"按钮被点击的逻辑
AfxMessageBox(L"添加按钮被点击");
}
void CYourView::OnEdit()
{
// 处理"修改"按钮被点击的逻辑
AfxMessageBox(L"修改按钮被点击");
}
void CYourView::OnDelete()
{
// 处理"删除"按钮被点击的逻辑
AfxMessageBox(L"删除按钮被点击");
}
- 接下来,我们需要在视图类的消息地图中添加对应的消息映射。打开你的视图类的源文件,找到
BEGIN_MESSAGE_MAP
和END_MESSAGE_MAP
之间的部分,然后添加映射:
BEGIN_MESSAGE_MAP(CYourView, CView)
ON_COMMAND(ID_ADD, &CYourView::OnAdd)
ON_COMMAND(ID_EDIT, &CYourView::OnEdit)
ON_COMMAND(ID_DELETE, &CYourView::OnDelete)
END_MESSAGE_MAP()
- 最后,确保你在工具栏资源文件中设置了正确的ID。通常情况下,当创建工具栏时,Visual Studio会自动为你分配ID。如果你使用的是RC文件,比如resource.h和resource.rc,确保这些ID已经被正确地定义并分配给对应的按钮。例如:
在resource.h中定义ID:
#define ID_ADD ID_SEPARATOR + 1
#define ID_EDIT ID_ADD + 1
#define ID_DELETE ID_EDIT + 1
在resource.rc中分配ID给按钮:
IDR_MAINFRAME TOOLBAR "ToolBar"
{
BEGIN
BUTTON ID_ADD, 0, 0, 64, 64, TBSTATE_ENABLED
BUTTON ID_EDIT, 64, 0, 64, 64, TBSTATE_ENABLED
BUTTON ID_DELETE, 128, 0, 64, 64, TBSTATE_ENABLED
END
}
现在,当你点击工具栏上的相应按钮时,对应的函数会被调用,执行相应的操作。这只是一个基本的例子,实际应用中你可能需要根据业务需求进行更复杂的数据处理或者界面交互。