您的位置:首页 > 其它

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

2010-06-29 15:52 393 查看
在网上搜了好多资料,发现能在单文档上显示按钮,但就是不能响应事件,

弄了好久,发现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的客户区有个"请点击"按钮,点击后,弹出“你点击了我”消息框
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: