Как сохранить и восстановить данные в Edit Box диалогового окна

В процессе разработки программы возникает необходимость в сохранении
и восстановлении данных введённых в Edit Box, диалогового окна.
Так как в найденных мной примерах в Интернете в большинстве приведены
примеры для переменных типа CString, мы рассмотрим вариант для типа int.

С помощью мастера создания приложений сгенерируем заготовку простейшего диалогового окна.
Последовательность действий:
- в Microsoft Visual C++ нажать File и выбрать New.
- на вкладке Projects выбрать MFC AppWizard (exe) и ввести название проекта, например edit.
- на первом шаге выбрать Dialog based.
- во втором и третьем без изменений, а в четвертом на выбрать CEditDlg, и нажать Finish.

Для примера напишем маленькую программку, которая будет вычислять сумму двух чисел, а вводные данные и результат можно будет сохранить в файле для последующего
вызова в программу.
С помощью Visual Studio создать диалоговое окно в котором будет находиться:
- три кнопки "Сохранить"- которая будет сохранять данные текстовых полей в файле,"Извлечь"- которая будет
извлекать данные из файла в текстовые поля, "Результат"- при нажатии на которую и будет
производиться расчёт, а также кнопку "ОК"- для выхода из программы. (Индификаторы создаются автоматически, но мы присвоим свои имена,
для кнопки "Сохранить"- IDC_BUTTON_SAVE,
для кнопки "Извлечь"- IDC_ BUTTON_OPEN
и для кнопки "Результат"- IDC_BUTTON_RES.
- три текстовых поля для занесения и получения данных, а также два статических знака + и = между текстовыми полями.
Далее при помощи ClassWizard присваиваем текстовым полям значения переменных, в моём случае m_x, m_y, m_z. При этом тип всех переменных устанавливается как int. Далее не выходя из ClassWizard создаём функции для кнопок
"Сохранить", "Извлечь", "Результат", и редактируем код программы.
В начале напишем код, который при нажатии кнопки "Результат" будет вычислять сумму двух чисел и выводить результат в третье текстовое поле.
Для этого через ClassWizard создаём функцию обработки для кнопки "Результат" и запишем в ней код, который будет вычислять сумму двух чисел:

void CEditDlg::OnButtonRes()
{
UpdateData(TRUE);//
m_z = m_x + m_y;
UpdateData(FALSE);
}

Теперь после компиляции запустим программу введём два числа и нажав кнопку "Результат" получим сумму двух чисел.
Хорошо бы запомнить эти значения в каком-нибудь файле, чтобы в случае необходимости восстановить их.
Для этого вначале с помощью ClassWizard создадим функции обработки для кнопок "Сохранить" и "Извлечь", а затем создадим
в них следующий код:

void CEditDlg::OnButtonSave()
{

// TODO: Add your control notification handler code here
{
CFile file("SAVE.DAT", CFile::modeWrite | CFile::modeCreate | CFile::typeBinary);
// создать файл
CArchive ar(&file, CArchive::store); // на основе него объект архив
ar << m_x; // записать в архив значения переменных которые
ar << m_y; // были занесены пользователем и появились в результате
ar << m_z; // и появились в результате вычисления
ar.Close(); // закрыть архив
file.Close(); // закрыть файл
}
}
void CEditDlg::OnButtonOpen()
{

// TODO: Add your control notification handler code here
// создание объекта и открытие файла для чтения

{
CFile file("SAVE.DAT", CFile::modeRead|CFile::typeBinary);
CArchive ar(&file, CArchive::load);
ar >> m_x;
ar >> m_y;
ar >> m_z;
UpdateData(FALSE);
ar.Close();
file.Close();
}
}

Теперь вычислив сумму двух чисел мы можем сохранить значения слагаемых и суммы в файле SAVE.DAT, завершив работу с программой есть возможность восстановить предыдущие значения.

загрузить исходник

© Goodluck Дмитрий (Cema)

Похожие записи

Новая версия wxDesigner будет поддерживать wxWidge... Самая последняя версия wxDesigner - GUI Builder для wxWidgets и ее популярные сборки Python и Perl - теперь поддерживается для предстоящей версии wxWi...
Ошибка при запуске программы через Ctrl +F5... При запуске уже скомпилированного проекта через Ctrl + F5 столкнулся с тем что в папке Debug не оказаласось .exe файла. Интересно, подумал я и стал по...
В первые дни нового года…... После десяти дней нового года решил наконец-то выйти из дому :) Не то, что б я рьяно отмечал праздники. Просто погода не способствовала долгим прогулк...
Как сохранить и восстановить данные диалогового ок... При работе с диалоговым окном возникает необходимость сохранять и восстанавливать данные полученные в результате действия программы. Для этого мы исп...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Страницы

Метки

Рубрики

Свежие записи

Свежие комментарии

Ноябрь 2017
Пн Вт Ср Чт Пт Сб Вс
« Апр    
 12345
6789101112
13141516171819
20212223242526
27282930  

Архивы