MFC中,怎样给新建的BUTTON添加响应函数?

MFC中,怎样给新建的BUTTON添加响应函数?,第1张

采用可视化界面添加的BUTTON按钮的话,一般来说双击该控件就可早拿以添加时间响应函数,如果双击不管用搭掘,还可以右键该控件选择 add event handler就会进入添加响应函数的编辑框,选择响应的消息响应函数。陆枝搭

首先说明一下:

BEGIN_MESSAGE_MAP(CTextEditorView, CFormView)和END_MESSAGE_MAP()之间是VC编译器在编译程序时候,查找消息与函数的映射关系的地方,比如编译这个文件,当编译器在这个之间发现语句ON_BN_CLICKED(IDC_ICONBUT0, OnIconbut0),时,就会把消息ON_BN_CLICKED,IDC_ICONBUT0,OnIconbut0三者关联起来,使得程序运行的时候,点击ID为IDC_ICONBUT0后产生ON_BN_CLICKED消息,同巧纤时OnIconbut0函数被调用。对于一个窗口,除了我们通过手动添加或通过向导添加的消息映射之外,还有很多消息需要进行映射;比如这个例子,当鼠标从窗口上移动时,系统会向窗口发送鼠标移动消息,可是你在这里并没有处理,那谁来映射并处理这些消息,因为编译器在这里没有找到鼠标移孝好仿动的消息映射,它就会从这个类的袜弊父类逐曾往上找,直到找到为止,而BEGIN_MESSAGE_MAP(CTextEditorView, CFormView)就是告诉编译器,如果在这里找不到消息映射,就从这个类的父类CFormView开始往上查找。比如鼠标移动消息,在这里并没有做映射处理,编译器就会到父类CFormView中去查找,如果父类CFormView中也没有,编译器就会不断的往上找,直到找到CWnd类,CWnd类映射了所有的窗口消息。

对于不熟悉如何添加消息映射的朋友,最好用向导添加。对于手动添加消息映射,除了在这里添加消息映射之外,还要定义消息函数。

你是怎样添加的,怎么个无法编译,编译错误是什么?

动态创建的迟模控件,,可以在对话框的PreTranslateMessage里面进行响应,并执行代码或者执行自定义的响肆山应函码雹缓数。

在PreTranslateMessage中:

CWnd* pBtn = GetDlgItem(1234)

if(pMsg->hwnd==pBtn.m_hWnd&&pMsg->message==WM_LBUTTONDOWN)

DoYourFunctions()


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

原文地址: https://outofmemory.cn/bake/11994951.html

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

发表评论

登录后才能评论

评论列表(0条)

保存