SDI里添加按钮并响应点击事件

 

在网上搜了好多资料,发现能在单文档上显示按钮,但就是不能响应事件,

弄了好久,发现m_pButton->Create()要放在C***View类的OnCreate()里。

但用VS2008新建的单文档程序里C***View类没有重载OnCreate()函数,要

自己重载该函数,可以利用向导生成的。下面说一下具体步骤:

 

一、新建SDI(单文档)程序button,向导会生成CbuttonView类,还有其他类

还有buttonView.h,buttonView.cpp两个文件,当然还有其他文件。

二、在CbuttonView类中添加CButton指针变量m_pButton

三、在CbuttonView类添加OnCreate函数,通过类向导生成WM_CREATE消息函数即可

四、在resoure.h文件中添加

       #define IDC_TEST                    1000

五、在CbuttonView类的OnCreate函数中添加按钮生成函数

int CbuttonView::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

if (CView::OnCreate(lpCreateStruct) == -1)

return -1;

// TODO:  在此添加您专用的创建代码

m_pButton = new CButton;

m_pButton->Create( "请点击",WS_CHILD|WS_VISIBLE, CRect(100,100,200,140),this,IDC_TEST); 

return 0;

}

六、在CbuttonView类添加test函数,可通过向导生成

buttonView.h中

 

class CbuttonView : public CView

{

..............

public:

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

void test(void);

}

 

buttonView.cpp中

 

void CbuttonView::test(void)

{

AfxMessageBox("你点击了我");

}

七、在CbuttonView类中添加消息映射,buttonView.cpp文件

BEGIN_MESSAGE_MAP(CbuttonView, CView)

..........

//添加的点击消息

ON_BN_CLICKED(IDC_TEST, &CbuttonView::test)

ON_WM_CREATE()

END_MESSAGE_MAP()

八、运行程序,在SDI的客户区有个"请点击"按钮,点击后,弹出“你点击了我”消息框

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值