请问要怎样给在单文档的中创建的按钮增加消息映射呢?

请问要怎样给在单文档的中创建的按钮增加消息映射呢?,第1张

添加消息响应函数,我刚刚试了一下,发现按钮必须放在视图类中消息响应才能成功,放在框架类中不行具体方法是,在视图类的头文件加入CButton m_btn在OnDraw函数中加入m_btn.creat(~~~~),注意这里要用到这个函数的最后一个参数在头文件的protected:

//{{AFX_MSG(CBtnView)

// NOTE - the ClassWizard will add and remove member functions here.

//DO NOT EDIT what you see in these blocks of generated code !

afx_msg void OnButton()//这里添加消息响应函数,函数名随便

//}}AFX_MSG在源文件的这里也就是视图类的CPP文件BEGIN_MESSAGE_MAP(CBtnView, CView)

//{{AFX_MSG_MAP(CBtnView)

// NOTE - the ClassWizard will add and remove mapping macros here.

//DO NOT EDIT what you see in these blocks of generated code!

//}}AFX_MSG_MAP

// Standard printing commands

ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)

ON_BN_CLICKED(10003,OnButton)//这里添加函数与按钮单击事件的关联10003是create函数的最后一个参数,OnButton是前面定义个函数名

END_MESSAGE_MAP() 在源文件中任意两个函数之间添加void CBtnView::OnButton()//CBtnView改成你的类名

{

MessageBox("dha")//这里就可以添加单击按钮的响应代码了,这句是我测试加的,你可以换成你想要的

}

只能手动添加。

假设控件类为CMyControl、视图类为CMyView。

1)MyView.h中:

class CMyView

{

protected:

CMyControl m_myControl //定义控件变量

public:

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct)//重写View的OnCreate()函数

afx_msg void OnMyControlClick()// 控件的消息响应函数

DECLARE_EVENTSINK_MAP() //声明对控件消息映射的支持

}

2) MyView.cpp中:

#define IDC_MYCONTROL 100

//控件的ID,只要为正整数即可

BEGIN_EVENTSINK_MAP(CMyView, CView)

ON_EVENT(CMyView, IDC_MYCONTROL , -600 /* Click */, OnMyControlClick, VTS_NONE) //控件消息映射

END_EVENTSINK_MAP()

int CMyView::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

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

return -1

//创建控件

m_myControl.Create(NULL, WS_VISIBLE, CRect(0,0,100,100), this, IDC_MYCONTROL) // CRect为控件大小,根据需要设定。

return 0

}

//控件消息响应

void CMyView::OnMyControlClick()

{

AfxMessageBox("You clicked my control.")

}

有个偷懒的办法:

你把OnCreate函数写好后,其他的消息映射函数全都可以通过对话框来得到。所以你可以把控件放到一个对话框中,然后生成控件的消息映射函数,然后拷贝到View中。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11925496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存