VC2010 单文档动态创建按钮和响应函数 (请CSDN改进博客支持截图)

来源:互联网 发布:c语言中如何自定义类型 编辑:程序博客网 时间:2024/06/05 14:08

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. 运行效果

原创粉丝点击