mfc-MFC中关于消息映射函数定义的问题

问题描述

MFC中关于消息映射函数定义的问题

MFC中有那么多的消息,每个消息都要定义一个消息映射函数么?能不能简化到一个函数中定义,消息函数和普通函数的区别是什么?

解决方案

http://blog.csdn.net/ocean2006/article/details/5498265

解决方案二:

消息映射的作用就是告诉系统我们关心哪一些消息,当这样的消息产生时就调用我们自己写的的消息响应函数,比如下面的消息映射:

BEGIN_MESSAGE_MAP(MessageMapDlg, CDialogEx)
    ON_BN_CLICKED(IDC_BTN_1, OnBnClicked_Hello)
    ON_BN_CLICKED(IDC_BTN_2, OnBnClicked_Hello)
END_MESSAGE_MAP()

我们自己的消息响应函数:

 void MessageMapDlg::OnBnClicked_Hello()
{
    // TODO: 在此添加控件通知处理程序代码
    MessageBox(_T("Hello!"));
}

当我们点击按钮1(IDC_BTN_1)或者按钮2(IDC_BTN_2)时就会发送_BN_CLICKED消息,而这个消息正是我们通过消息映射ON_BN_CLICKED告诉系统我们关心的也是这个消息,系统检测到这个消息后就会调用我们的OnBnClicked_Hello函数,从而弹出一个消息框显示“Hello!”。
消息响应函数(OnBnClicked_Hello)和普通函数没有什么区别,前者是产生特定消息后被执行的函数,后者是我们想调用的时候自己调用的。

解决方案三:

MFC 关于回调函数定义问题

时间: 2024-11-18 01:43:56

mfc-MFC中关于消息映射函数定义的问题的相关文章

MFC语言中的消息和函数之间的关系

问题描述 MFC语言中的消息和函数之间的关系 MFC中的消息和函数之间的关系是什么,比如OnSize这个是一个函数吧,怎么变成消息的? 解决方案 每个窗口有一个消息循环,mfc对消息循环做了包装,通过消息映射宏将收到指定的消息调用对应的虚函数处理,你写的onsize就是这样一个函数. 解决方案二: Onsize 是窗口大小发生了改变时调用的 3个消息分别是:WM_SIZE.WM_SIZING.WM_GETMINMAXINFO:分别对应相应的处理函数:OnSize.OnSizing.OnGetMi

关于MFC中ccmdtarget这个类在多线程中传递消息参数的用法

问题描述 关于MFC中ccmdtarget这个类在多线程中传递消息参数的用法 关于MFC中ccmdtarget这个类在多线程中传递消息参数的用法?看了一些资料,但是没有提到如何用它来调用多线程,具体怎么做呢? 解决方案 http://blog.csdn.net/hyhnoproblem/article/details/6117631

MFC应用程序中处理消息的顺序

MFC应用程序中处理消息的顺序 1.AfxWndProc()      该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc()  该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数 3.WindowProc()      该函数负责发送消息到OnWndMsg()函数,如果未被处理,则调用DefWindowProc()函数 4.OnWndMsg()        该函

MFC应用程序中处理消息的顺序,创建窗口的过程关闭窗口的顺序(非模态窗口),打开模式对话框的函数调用顺序

MFC应用程序中处理消息的顺序 1.AfxWndProc()      该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,                    然后调用WindowProc()函数 3.WindowProc()      该函数负责发送消息到OnWndMsg()函数,如果未被处理,则调用DefWindowProc()函数 4.O

全面解析MFC应用程序中处理消息的顺序

1.AfxWndProc()      该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数 3.WindowProc()      该函数负责发送消息到OnWndMsg()函数,如果未被处理,则调用DefWindowProc()函数 4.OnWndMsg()        该函数的功能首先按字节对消息进行排序,

在MFC程序中显示 JPG/GIF图像

如果你是一个使用VB编程的程序员,要在程序中显示JPG或者GIF图像简直易如反掌,将图像控件拖到Form中,分分钟即可搞掂.但是C++程序员要显  示同样的图形却没有那么轻松,那么是不是要自己编写JPG解压缩代码呢?当然不用那么复杂啦!本文将针对这个问题讨论如何在MFC中显示JPG或者GIF 图像. 用VB写图像显示程序之所以如此轻松,完全是利用了琳琅满目的图像处理控件,把你想要做的事情都一一搞掂.而C++程序员为了实现相同的功能必须忙 乎半 天.其实,C/C++程序员也能使用那些VB程序员所用

Win32 DLL和MFC DLL 中封装对话框

现在最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题.这里我们从Win32   DLL和MFC   DLL两个方面来分析并解决这个问题.           1.Win32   DLL               在Win32   DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的控件.然后使用DialogBox或者CreateDialog这两个函数(或相同作用的其它函数)来创建对话框,并定义

非MFC工程中使用MFC库

目录(?)[-] 需求说明 常见问题 问题分析 参考解决方法 我的解决方案 Stdafxh的原理     需求说明 C++工程的类型有很多,从VS(或VC)可以看到常见的有:Win32 Console Application.MFC Application.Win32 Project等.在创建MFC工程时,通过IDE的向导会自动帮我们创建相应的类文件和包含必需的头文件,但有时候我们需要在非MFC工程中包含MFC的库.至于为什么会有这个需要,为何不在一开始就创建MFC工程呢?可能有两种原因:1.在

mfc求助-在mfc程序中,如何使程序和文档关联起来?

问题描述 在mfc程序中,如何使程序和文档关联起来? 我是一名刚学软件不久的学生,最近在做一个项目,有很多地方不明白,还望大家赐教! 我想做一个文档备份器,但是不知道如何使mfc程序和文档关联起来,即当在某些文档中输入消息时,程序会收到输入相应的消息(输入消息的间隔时间,输入内容,等等) 望各位大神赐教! 谢谢