`
runfeel
  • 浏览: 936293 次
文章分类
社区版块
存档分类
最新评论

DoDataExchange整理

 
阅读更多
CWnd::DoDataExchange
virtual void DoDataExchange( CDataExchange* pDX );
参数: pDX 指向CDataExchange对象的指针。

框架调用这个函数以交换并校验对话框数据。
永远不要直接调用这个函数。它是由UpdateData成员函数所调用的。可调用UpdateData函数以初始化对话框控件或从对话框获取数据。
当你从CDialog继承应用程序特有的对话框类时,如果你想要利用框架的自动数据交换和校验功能,你需要重载这个成员函数。ClassWizard将为你编写这个成员函数的重载版本,包含了对话框数据交换(DDX)和校验(DDV)全局函数调用所需的“数据映射”。
要自动生成这个函数的重载版本,首先用对话框编辑器创建一个对话框资源,然后继承一个应用程序特有的对话框类。然后调用ClassWizard并用它来把变量、数据和校验范围与新对话框的不同控件关联起来。ClassWizard将写入重载的DoDataExchange,其中包含了数据映射。

在2003以后的VC环境下,动态生成对话框,相应的代码中没有初始化函数OnInitDialog , 此时,你可以把你的初始化代码直接放在DoDataExchange中。当然,你也可以,手动添加一个初始化函数(无法通过向导与6.0不同!!),但得注意添加后 OnInitDialog 的最开始得调用 CDialog::OnInitDialog();
分享到:
评论

相关推荐

    MFC对话框-DoDataExchange()函数使用

    在使用对话框资源时,DoDataExchange() 函数扮演着关键角色,它使得对话框中的控件与程序中的变量之间可以进行自动的数据交换和验证。 首先,DoDataExchange() 函数的原型是: ```cpp virtual void DoDataExchange...

    用vc++实现bmp图像显示

    void DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } afx_msg void OnPaint(); }; void CMyDlg::OnPaint() { CPaintDC dc(this); // 创建设备上下文 CBitmap bitmap; if (bitmap....

    基于http客户端下载程序设计

    - **DoDataExchange()**:设置数据成员`m_sResource` 和 `m_sURL` 的绑定关系。 #### 五、下载功能实现 虽然提供的代码片段中没有具体展示下载功能的实现细节,但可以推测其主要流程如下: 1. 用户在对话框中输入...

    MFC小游戏二:对话框

    DoDataExchange (void CAboutDlg::DoDataExchange(CDataExchange* pDX)): 这是MFC中的数据交换机制,用于在对话框控件和成员变量之间交换数据。在这个实现中,它仅仅调用了基类的 DoDataExchange 方法,没有添加...

    对话框编程1[整理].pdf

    DataExchange过程包括两个主要步骤:DoDataExchange()函数,用于在对话框初始化时将数据从成员变量填充到控件,以及在对话框关闭时从控件读取数据回填到成员变量。这样,对话框的数据就能够在运行时动态地与程序的...

    ResizableLib.7z 用来缩放对话框窗口(非Resizing窗口)

    注:代码是别人的,我整理并增加了些东西 /// 用法 用来缩放对话框窗口(非Resizing窗口) // 1、class CTestDlg : public CResizableDialog // 2、 // CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/) // : ...

    vc++文件加密程序软件

    此类包含了一个简单的构造函数和 `DoDataExchange` 方法,用于处理数据交换。 - **构造函数**: `CAboutDlg::CAboutDlg()` 初始化对话框。 - **DoDataExchange**: 用于交换数据,但在这个示例中并没有实际的数据交换...

    第七章-对话框编程(C 教程课件).doc

    DDX机制的关键在于`DoDataExchange`函数,通常在对话框类的源文件中定义。例如: ```cpp void CMyDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Custom(pDX, IDC_EDIT1, m_var1)...

    加密密文明文还原程序

    void CMy1Dlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CMy1Dlg) // NOTE: the ClassWizard will add DDX and DDV calls here //}}AFX_DATA_MAP }

    对话框编程

    在对话框类中,通常会有一个名为`DoDataExchange`的虚函数,用于初始化对话框控件以及实现控件与对话框之间的数据交换。其实现代码通常如下: ```cpp void nDlg::DoDataExchange(CDataExchange* pDX) { CDialog::...

    Data Exchange数据交换VC++实例

    通常在对话框的`DoDataExchange`函数中使用,以实现控件值到数据成员的自动绑定和更新。 3. **内存数据交换**:在内存中不同对象之间交换数据,可能涉及到指针操作、数据结构复制等。 4. **文件I/O操作**:读写...

    自己整理的VC笔记,包括常用控件,文件,串口等

    数据交换(DataExchange)是MFC中用于序列化数据的重要机制,`DDX_Text`用于数据绑定,`DoDataExchange`用于数据交换过程的控制。 这些知识点覆盖了VC++编程中的多个核心领域,从串口通信到文件操作,再到绘图与...

    VC中数据交换程序及其案例共2页.pdf.zip

    DDX的工作原理是通过在对话框类的DoDataExchange函数中定义映射规则,将控件ID与类成员变量关联起来。例如,如果有一个编辑框(CEdit)控件用于输入用户名,我们可以这样设置: ```cpp void CMyDialog::...

    第七章--对话框编程(C 教程课件).doc

    在C++中,这一过程通常通过`DoDataExchange`函数来实现。例如: ```cpp void CMyDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); // {{AFX_DATA_MAP(CMyDlg) DDX_Custom(pDX, IDC_...

    超市管理系统

    void CDlgDrop::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST_DROPLIST, m_DropList); DDX_Control(pDX, IDC_LIST_NOTDROPLIST, m_NotdropList); } BEGIN...

    MFC案例_拥有控件提示信息对话框

    接着,在源文件中实现`CInfoDialog`类的方法,包括构造函数、析构函数以及`DoDataExchange`方法。`DoDataExchange`用于在对话框控件与类成员变量之间进行数据交换,是MFC中实现控件绑定的关键。 ```cpp void ...

    MFC listctrl的使用方法

    在上述代码中,我们首先通过 `DoDataExchange` 函数将 `ListCtrl` 控件绑定到 `CFileManageDlg` 类中的 `m_list` 成员变量上。接着,在 `OnInitDialog` 函数中,我们插入了四个列标题,并设置了每列的宽度。 ##### ...

    Visual C++窗口标题改变的几种方法.rar_窗口标题

    在MFC中,如果你使用数据交换机制(`DDX`),可以在`DoDataExchange()`函数中处理标题的改变。首先,定义一个成员变量存储标题,然后在`DoDataExchange()`中更新它: ```cpp CMyDialog::CMyDialog() { m_...

    用VC++实现的通讯录

    virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg...

    VC_Dialog.rar_ VC_Dialog_VC界面_c vc dialog_visual c++dialog

    在类定义中,我们会声明控件ID对应的成员变量,并重写DoDataExchange函数,用于控件数据的交换。例如,如果你有一个ID为 IDC_EDIT1 的文本框,你可能会有这样一段代码: ```cpp class CMyDialog : public CDialog {...

Global site tag (gtag.js) - Google Analytics