Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Давно заметил, что всё-таки языки С/C++ это не самый лучший вариант программирования под Windows. Сейчас появилась масса более современных и удобных языков, например тот же Python - кроссплатформенный язык, очень легок в изучение. Я его изучил буквально за несколько дней по этому курсу - ссылка. Автор постарался, там видеоуроки на удивление легкие и понятные.

Как связать CRecordset с CDialog

В документации Visual C++ ENROLL описывается, как соединить элементы управления CRecordView с полями переменных CRecordset. Небольшая доработка поможет связать поля переменных с элементами управления CDialog. В данной статье описываются шаги, которые необходимо предпринять для этого.

Подключить CRecordset к CDialog можно точно так же, как CRecordset к CRecordView. Как только CRecordset и CDialog созданы, проделайте следующие шаги:

  1. При помощи ClassWizard, укажите класс CRecordset как 'foreign class' для CDialog. Вот пример, как это делается с диалогом CAboutDlg в примере ENROLL:

    1. Для Visual C++ 2.x, из директории \MSVC\MFC\SAMPLES\ENROLL\STEP1 загружается проект ENROLL step 1, а для Visual C++ 4.0 из директории \MSDEV\SAMPLES\MFC\TUTORIAL\ENROLL\STEP1.

    2. Запускается ClassWizard (CTRL+W).

    3. В выпадающием списке 'Class Name' выбирается класс 'CAboutDlg'.

    4. В ClassWizard, выбирается закладка 'Class Info'.

    5. В выпадающем списке 'Foreign Class' выбирается 'CSectionSet'. CSectionSet это класс CRecordset который Вам необходимо связать с диалогом.

    6. В окошке редактирования 'Foreign Variable' напишите m_pSet (произвольное название).

    После этого для класса CAboutDlg будет создана переменная-член m_pSet. Переменная m_pSet будет указывать на объект CSectionSet.

  2. В Visual C++ 4.0, чтобы добавить элементы управления к CDialog, воспользуйтесь редактором ресурсов. В более ранних версиях Visual C++, для этого прийдётся воспользоваться AppStudio.

  3. Добавьте следующий код к CDialog, чтобы назначать, открывать и закрывать записи (recordset). Например:
          BOOL CAboutDlg::OnInitDialog()
           {
                CEnrollDoc * pDoc=(CEnrollDoc *) (GetParentFrame()->
                         GetActiveDocument());
                m_pSet= &(pDoc->m_SomeRecordset);
               m_pSet->Open();
     
                CDialog::OnInitDialog();
     
               return TRUE;
           }
     

    Перед тем, как использовать этот код, убедитесь, что объект CSectionSet (наследованный от CRecordset) объявлен как public переменная класса CEnrollDoc (наследованного от CDocument). Обратите внимание, что в коде, приведённом выше, эта переменная называется 'm_SomeRecordset'. Так же можно добавить дополнительный код для проверки CDBExceptions а так же чтобы позволить пользователю перемещаться по записям.

    ЗАМЕЧАНИЕ: данный код не закрывает объект CRecordset. Это можно сделать в OnOK и OnCancel в деструкторе CDialog, либо когда объект CRecordset самостоятельно разрушится.

 


ССЫЛКИ

Более подробную информацию о 'Foreign Class' и 'Foreign Variable' возможностях визарда (ClassWizard), перейдите на закладку 'Class Info' в ClassWizard и кликните Help.

 





<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU Проект ReactOS