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

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值