Обробка файлів засобами MFC. Серіалізація нестандартних об’єктів. Створення та редагування ресурсів меню, страница 2

void СFriend::Serialize(CArchive& ar)

{

                   CObject::Serialize(ar);

                   if(ar.IsStoring())

                                           ar<<m_ friend;

                   else

                                           ar>>m_friend;

}

Кроме функции Serialize() нужно добавить два макроса. В описание класса СFriend  нужно вставить макрос

DECLARE_SERIAL(СFriend). Макрос IMPLEMENT_SERIAL() в файле Friend.cpp.

Чтобы выполнить сериализацию объекта  about_ friend, следует вызвать метод Serialize() внутри метода Serialize() документа CKRDoc.

void CKRDoc::Serialize(CArchive& ar)

{

                   about_friend.Serialize(ar);

}

После запуска нужно ввести имя мужчины и затем записать в файл по File->Save As. Вызвать File->New и очистить экран. После этого прочитать из файла ранее записанную в него строку символов.

3.  Створення та редагування ресурсів меню

Start Page. Create:Project.
В окне Application Type выбрать Single document. Снять флажок Use Unicode libraries.

Resource View -> папкa Menu -> IDR_MAINRAME. Появится окно редактора меню.

Выбрать пункт меню File →Print Preview ,и нажать клавишу insert. Выше появится пустая вставка. Занести в неё «Privet» правой кнопкой мыши вызваем контекстное меню -> Add Event Handler. В окне Message type выбрать COMMAND, а в  Class list выбрать класс Cmenu1View и щёлкнуть на  Add and Edit.

В файле menu1View.cpp появится заготовка для функции-обработчика события.

                    Предварительно в класс Cmenu1Doc надо занести  элемент данных stroka  типа CString.

В обработчике пишем необходимый код:
void Cmenu1View::OnFileprivet ()
{
Cmenu1Doc*pDoc=GetDocument();

ASSERT_VALID(pDoc);
pDoc->stroka=”Будьмо!”;// Занесение текста в stroka
Invalidate();
}

В функции вывода на экран запрограммируем вывод содержимого переменной   stroka:

void Cmenu1View::OnDraw(CDC*pDC)
{
……….
pDC->TextOutW(0,0, pDoc->stroka); //Вывод на экран  содержимого
}

Создать кнопку в панели инструментов, дублирующую пункт меню

 File->Privet

В окне Resource View -> Toolbar-> IDR_MAINFRAME.  Появится окно графического редактора.

Если щёлкнуть по пустой кнопке, в графическом окне будет её изображение.

                   Выбрать цвет карандаша и нарисовать в увеличенной кнопке какой-либо придуманный Вами символ для пункта меню "Privet" . По окончанию навести курсор на нарисованную кнопку в панели инструментов, и вызвать контекстное меню. В нём выбрать Properties ->ID->  ID_FILE_PRIVET. Т. о, установлена связь новой кнопки с пунктом меню File->Privet.

                   В строке Prompt справа ввести  Privet\nPrivet. Это имя кнопки и после "\n" – текст всплывающей подсказки при наведении курсора на кнопку.

3) Закрыть графическое окно.

4. Табуляція функції, коли діалогове вікно є головним. Приклад

Start Page. Create:Project.
Name- dialogtabul. Application Type -> Dialog based. Создать  диалоговое окно: Resource View-> Dialog-> IDD_DIALOGTABUL_DIALOG.

Разместить в диалоговом окне кнопку c надписью  «Пуск».  Имя  кнопки по умолчанию IDC_BUTTON1

Разместить 3 управляющих элемента  Edit Control. Имя по умолчанию IDC_EDIT1, IDC_EDIT2 и IDC_EDIT3. Эти окна для занесения значения xmin, dx  и xmax

разместить управляющие элементы Aa Static Text. В строке Capture окна Properties внести, xmin, dx, xmax. Разместить управляющий элемент  List Box для занесения результатов.. Имя по умолчанию - IDC_LIST1.  В класс  CdialogtabulDlg добавить элементы данных, соответствующие каждому из управляющих элементов CEdit m_edit1, CEdit m_edit2, CEdit m_edit3, CListBox m_list1

Для  кнопки «Пуск» требуется а обработчик события.  Для этого нужно выделить кнопку->

контекстное меню-> Add Event Handler -> “Add and Edit”

Добавить в oбработчик описание локальных переменных  и последовательность операторов.