1.DDX_Control 与 DDX_Text 区别

DDX_TEXT()的作用可以理解为把字符串变量和控件的文本(WindowText)关联起来, 
DDX_Control()
的作用可以理解为把变量和控件本身关联起来, 
DoDataExchange(pDX)
就是处理所有变量与其关联控件交换数据的函数。

void CView::DoDataExchange(CDataExchange* pDX)

CFormView::DoDataExchange(pDX);
DDX_Text(pDX, IDC_ID_VALUE, m_strID);
DDX_Control(pDX, IDC_ID_VALUE, m_editID);

在程序中
通过update(TRUE)取得控件上的值到m_strID,处理修改后通过update(FALSE)传回控件,界面显示
通过m_editID.GetWindText(str),取得值,处理后,通过m_editID.SetWindText(str)传回控件界面显示

2.MFC BEGIN_MESSAGE_MAP()

BEGIN_MESSAGE_MAP(CpassApp, CWinApp)
    ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()

这些都是宏定义,不是函数。 
在BEGIN_MESSAGE_MAP()和END_MESSAGE_MAP()之间添加你的消息响应函数,为每个消息处理函数加入一个入口

BEGIN_MESSAGE_MAP( theClass, baseClass )

参数:

theClass 指定消息映射所属的类的名字。
baseClass 指定theClass的基类的名字。

说明:
使用BEGIN_MESSAGE_MAP宏开始你的消息映射的定义。
在你的类的成员函数的实现文件(.CPP)中,使用BEGIN_MESSAGE_MAP宏开始消息映射,然后为每个消息处理函数加入一个入口,最后用END_MESSAGE_MAP宏结束消息映射。

每个消息映射入口的格式如下:
  ON_Notification(id, memberFxn)
  其中id指定了发送通知的控件的子窗口的ID,而memberFxn指定了处理该通知的父对象中的成员函数名。
  父对象的函数原型格式如下:
  afx_msg void memberFxn( );

  可能的消息映射入口如下:

映射入口 何时向父对象发送消息
ON_BN_CLICKED   用户单击按钮时
ON_BN_DOUBLECLICKED 用户双击按钮时

3.ON_COMMAND和ON_MESSAGE的区别

      在MFC应用程序中传输的消息有三种类型:窗口消息、命令消息和控件通知。
窗口消息(Window Message)
一般与窗口的内部运作有关,如创建窗口、绘制窗口和销毁窗口等。通常,消息是从系统发送到窗口,或从窗口发送到窗口。若需要窗口消息的完全的列表,请参考MFC文档。
命令消息
命令消息一般与处理用户请求相关,当用户单击一个菜单项或工具栏时,命令消息产生,并被发送到能处理该请求的类对象(如,装载文件、编辑文本和保存选项等)。
控件通知
通常,控件通知在某些重要事件发生时,由控件窗口发送到父窗口,如打开一个组合框。控件通知为父窗口进一步控制子窗口提供了机会。例如,打开一个组合框时,父窗口可以用组合框初建时得不到的消息填充它。
      ON_COMMAND 和ON_MESSAGE都是将消息处理函数加入消息路由表中,但是ON_COMMAND对应的消息ID一直都是WM_COMMAND,而ON_MESSAGE的消息ID为ON_COMMAND的第一个参数
在MFC中,ON_COMMAND, ON_MESSAGE, ON_NOTIFY它们的区别。
ON_NOTIFY是控件向其父窗口发送消息处理的宏,ON_COMMAND是菜单和工具栏项处理消息的宏,ON_MESSAGE是处理自定义消息的宏
ON_COMMAND用来处理WM_COMMAND消息。老式的windows控件发送WM_COMMAND作为对父窗口的通知消息。另外,菜单,工具栏也向框架窗口发送WM_COMMAND消息。
ON_MESSAGE主要用来处理用户自定义消息。
对于某些新型的windows控件(如ListCtrl等),向父窗口发送通知消息时需要包含大量的信息,WM_COMMAND已不适应这种要求(因为WM_COMMAND的wparam和lparam都已经填满了),ON_NOTIFY主要用来处理这些新型的windows控件向父窗口的发送的WM_NOTIFY通知消息。
 
 

MFC知识点(DDX_Control 与 DDX_Text ,ON_COMMAND和ON_MESSAGE)的更多相关文章

  1. MFC DDX_Control 与 DDX_Text

    DDX_TEXT()的作用可以理解为把字符串变量和控件的文本(WindowText)关联起来, DDX_Control()的作用可以理解为把变量和控件本身关联起来, DoDataExchange(pD ...

  2. MFC知识点总结

    一:消息1.什么是消息?消息是驱动windows系统运行的基础.从计算机的角度来看,消息就是一个整数.    (1)一个无符号整数,是消息值:    (2)消息附带的WPARAM和LPARAM类型的参 ...

  3. MFC知识点整理

    1. 在使用VS2010生成基于MFC的应用程序时,在“Visual C++”下选择“MFC”,对话框中间区域会出现三个选项:MFC ActiveX Control.MFC Application和M ...

  4. MFC知识点

    1.获取应用程序实例句柄: AfxGetInstanceHandle(); 2.获取屏幕桌面窗口指针; GetDesktopWindow();

  5. DDX_Text (MFC)

    DDX_Text (MFC) 描述:该DDX_Text功能管理int的转移,UINT,long,DWORD,CString,float, 或 double编辑控件之间的数据在对话框中,表单视图或控制视 ...

  6. MFC如何添加系统消息处理函数?

    http://zhidao.baidu.com/question/318026804.html 在MFC程序中,我们并不经常直接调用Windows API,而是从MFC类创建对象并调用属于这些对象的成 ...

  7. MFC 总体理解

    在MFC程序中,我们并不经常直接调用Windows API,而是从MFC类创建对象并调用属于这些对象的成员函数.也就是说MFC封装了Windows API 你说你喜欢C++而MFC换一种说法就是一个用 ...

  8. 通过编写串口助手工具学习MFC过程——(十)UpdateData()用法和编辑框的赋值、取值

    通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...

  9. Windows的四类消息

    Windows的三类消息1.标准消息宏名称 对映消息 消息处理函数(名称已由系统预设)ON_WM_CHAR WM_CAHR OnCharON_WM_CLOSE WM_CLOSE OnCloseON_W ...

随机推荐

  1. xpath选择器使用

    简单说,xpath就是选择XML文件中节点的方法. 所谓节点(node),就是XML文件的最小构成单位,一共分成7种. - element(元素节点)- attribute(属性节点)- text ( ...

  2. Excel有用的宏

    =Index({"同事","同学","亲戚"},b3) 前面的array默认索引从1开始. 如果b3为1.而枚举数组是: 0=>同事, ...

  3. R语言学习笔记——Base Graphics

    做exploratory data annalysis的作业,差点被虐死了,R从头开始,边做边学,最后搞到一点多才弄完,还有一个图怎么画都不对,最后发现是数据读取的时候有问题. 用来画图的数据来自:h ...

  4. poj -2010 Moo University - Financial Aid (优先队列)

    http://poj.org/problem?id=2010 "Moo U"大学有一种非常严格的入学考试(CSAT) ,每头小牛都会有一个得分.然而,"Moo U&quo ...

  5. 51 nod 1006 最长公共子序列Lcs

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1006 参考博客 :http://blog.csdn.net/yysdsy ...

  6. leetcode:Reverse Linked List

    Reverse a singly linked list. 代码如下: the iterative solution:(c++) /** * Definition for singly-linked ...

  7. Codeforces Round #209 (Div. 2)C

    刷了一页的WA  ..终于发现了 哪里错了 快速幂模板里一个变量t居然开得long  ... 虽然代码写的丑了点 但是是对的 那个该死的long 啊.. #include <iostream&g ...

  8. Kafka安装与实验

    接上面一篇文章: http://www.cnblogs.com/charlesblc/p/6038112.html 主要参考这篇文章: http://www.open-open.com/lib/vie ...

  9. rsync常用命令及格式

    rsync在同步文件夹内容这个工作上应用非常广泛,但是rsync本身命令还是比较复杂,本文总结一下: rsync = remote sync的简称 ,它 被用于在linux/unix系统中执行备份操作 ...

  10. 51nod1486 大大走格子

    容斥定理+dp...妈呀#1rp耗尽了难怪最近那么衰... #include<cstdio> #include<cstring> #include<cctype> ...