Давайте посмотрим, что происходит при связывании элемента управления и переменной набора записей при нашем Foreign классе.
void CTestDAOForeignDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CTestDAOForeignDlg) DDX_FieldText(pDX, IDC_EDIT1, m_pSet->m_Text, m_pSet); //}}AFX_DATA_MAP }
Функция DDX_FieldText управляет int, short, long, DWORD, CString, float, double, BOOL, или BYTE типами данных при обмене между редактирующимся элементом управления диалога и членами данных recordset.
Теперь нам нужно подключить функции к нашему классу Set.
// DaoMySet.h : header file // #include "afxdao.h" //////////////////////////// // CDaoMySet DAO recordset
Вы помните что в конструктору класс диалога наш класс набора записей установлен как NULL, так не пойдет. Объект нужно создать.
CTestDAOForeignDlg::CTestDAOForeignDlg(CWnd* pParent /*=NULL*/) : CDialog(CTestDAOForeignDlg::IDD, pParent) { //{{AFX_DATA_INIT(CTestDAOForeignDlg) m_pSet = NULL; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); m_pSet=new CDaoMySet(); // новый обьект m_pSet->Open(); // открыть }
Теперь при запуске программы у нас в элементу управления будет первая запись.
Но нам бы нужно удалить динамический объект. Удалим.
BOOL CTestDAOForeignDlg::DestroyWindow() { m_pSet->Close(); delete m_pSet; CDialog::DestroyWindow(); return TRUE; }