至于为什么没有使用我也不是太清楚,初学C++ MFC一些机制没有搞清楚,现在就是用到在Dlg控件中交换数据,希望以后会明白。
(1) 先在下面这个方法(此方法在所要交换数据的Dlg.cpp文件中)中绑定要交换的控件。
(2) 然后在相对应的Dlg.h文件中设置要交换数据控件数据的名称。(也就是用一个变量记录控件中的内容)。
public:
CString inattrfield;
CString inattrmodifier;
void inattr(CString inattrmodifier, CString inattrfield)
{
this->inattrmodifier = inattrmodifier;
this->inattrfield = inattrfield;
//UpdateData(false);
}
CString getInattrfield()
{
return inattrfield;
}
(3)
示例Dlg:
----------------------EditUClassAttrDlg.h---------------------
#pragma once
// EditUClassAttrDlg dialog
class EditUClassAttrDlg : public CDialogEx
{
DECLARE_DYNAMIC(EditUClassAttrDlg)
public:
EditUClassAttrDlg(CWnd* pParent = NULL); // standard constructor
virtual ~EditUClassAttrDlg();
// Dialog Data
enum { IDD = IDD_DIALOG3 };
public:
CString inattrfield;
CString inattrmodifier;
void inattr(CString inattrmodifier, CString inattrfield)
{
this->inattrmodifier = inattrmodifier;
this->inattrfield = inattrfield;
//UpdateData(false);
}
CString getInattrfield()
{
return inattrfield;
}
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
DECLARE_MESSAGE_MAP()
};
----------------------EditUClassAttrDlg.cpp-------------------
// EditUClassAttrDlg.cpp : implementation file
//
#include "stdafx.h"
#include "UMLApplication1.h"
#include "EditUClassAttrDlg.h"
#include "afxdialogex.h"
// EditUClassAttrDlg dialog
IMPLEMENT_DYNAMIC(EditUClassAttrDlg, CDialogEx)
EditUClassAttrDlg::EditUClassAttrDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(EditUClassAttrDlg::IDD, pParent)
{
}
EditUClassAttrDlg::~EditUClassAttrDlg()
{
}
void EditUClassAttrDlg::DoDataExchange(CDataExchange* pDX)
{
//CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, inattrfield);
DDX_Text(pDX, IDC_COMBO1, inattrmodifier);
}
BEGIN_MESSAGE_MAP(EditUClassAttrDlg, CDialogEx)
END_MESSAGE_MAP()
// EditUClassAttrDlg message handlers