1. 在类视图中添加
class CMyDocView : public CView
{
private: CButton btn; //added by moon
protected: // 仅从序列化创建
CMyDocView();
DECLARE_DYNCREATE(CMyDocView)
2. 在视图中添加消息
// CMyDocView 消息处理程序
int CMyDocView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: 在此添加您专用的创建代码
CRect rect_button(40,10,200,60); //描述控件位置以及大小的结构
btn.Create(_T("开关1"), WS_CHILD | WS_VISIBLE | WS_BORDER, rect_button, this, IDB_BTN);
btn.ShowWindow(SW_SHOWNORMAL);
return 0;
}
3. 在Resource.h中添加资源标号
#define IDB_BTN 307
4. 运行(我定义了两个按钮)
5. 为按钮添加命令处理函数
在类CMyDocView中添加命令处理函数
public:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void ButtonEvent(); //added by moon
};
6. CMyDocView.cpp 文件中的消息映射中添加
BEGIN_MESSAGE_MAP(CMyDocView, CView)
// 标准打印命令
ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CMyDocView::OnFilePrintPreview)
ON_WM_CONTEXTMENU()
ON_WM_RBUTTONUP()
ON_WM_CREATE()
ON_BN_CLICKED(IDB_BTN, ButtonEvent)
END_MESSAGE_MAP()
7. 编写命令处理函数
void CMyDocView::ButtonEvent()
{
AfxMessageBox(_T("你按了我!"));
}
8. 运行效果