第一步:创建一个CButton变量,并为其定义一个资源标识符
CButton restart;//在类中声明该变量
#define IDB_RESTART 328//在resource.h中添加
//IDB_RESTAR是资源标识符的名字,328是自定义的资源ID,这个可以根据你自己想要的设定,只要不跟其他的资源冲突就行。
第二步:在View中添加消息CREATE,可以显示该按钮
int CTestView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: 在此添加您专用的创建代码
CRect rect_button(850,100,950,130); //控件左上角坐标和右下角坐标
restart.Create(L"重新开始", WS_CHILD | WS_VISIBLE | WS_BORDER, rect_button, this, IDB_RESTART);
restart.ShowWindow(SW_SHOWNORMAL);
return 0;
}
第三步:点击按钮,实现相应动作
-
在View.cpp中添加:
BEGIN_MESSAGE_MAP是宏定义的一种,在BEGIN_MESSAGE_MAP()和END_MESSAGE_MAP()之间添加你的消息响应函数,为每个消息处理函数加入一个入口。
每个消息映射入口的格式如下: ON_Notification(id, memberFxn) 其中id指定了发送通知的控件的子窗口的ID,而memberFxn指定了处理该通知的父对象中的成员函数名。
-
然后再定义reStart函数实现想要实现的功能即可
//记得先在类中声明
void CTestView::reStart()
{
AfxMessageBox(TEXT("本局尚未结束,确定重新开始?"));
}
- 结果如下:
想要实现多个按钮也很简单
- 继续追加即可,注意一些地方
- 效果图如下: