СОДЕРЖАНИЕ
Постановка задачи
Краткие теоретические сведения
Результаты выполнения программы
Заключение
Литература
Листинг программы
ПОСТАНОВКА ЗАДАЧИ
Составить Win32 App проект простейший текстовый редактор, который позволяет выполнять операции редактирование текста, копирование и вставку из одного окна проекта в другое окно проекта. Использовать вызов диалогов сохранения и открытия файла, а также диалог выбора шрифта. Все диалоги применяются к тексту в редакторе.
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Работа с функциями вызова стандартных диалогов производится следующим образом:
1. Объявляются переменные соответствующих структур:
static COLORREF textColor;
// Переменные для стандартных диалогов "Open", "Save as"
static OPENFILENAME ofn;
static char szFile[MAX_PATH];
// Переменные для стандартного диалога "Color"
static CHOOSECOLOR cc; // common dialog box structure
static COLORREF acrCustClr[16]; // array of custom colors
// Переменные для стандартного диалога "Font"
static CHOOSEFONT chf;
static HFONT hFont;
static LOGFONT lf;
2. Инициализируются соответствующие структуры в обработчике события создания окна (окна диалога).
switch (uMsg)
{
case WM_CREATE:
// Инициализация структуры ofn
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hWnd;
ofn.lpstrFile = szFile;
ofn.nMaxFile = sizeof(szFile);
// Инициализация структуры cc
cc.lStructSize = sizeof(CHOOSECOLOR);
cc.hwndOwner = hWnd;
cc.lpCustColors = (LPDWORD) acrCustClr;
cc.Flags = CC_FULLOPEN | CC_RGBINIT;
// Инициализация структуры chf
chf.lStructSize = sizeof(CHOOSEFONT);
chf.hwndOwner = hWnd;
chf.lpLogFont = &lf;
chf.Flags = CF_SCREENFONTS | CF_INITTOLOGFONTSTRUCT;
chf.nFontType = SIMULATED_FONTTYPE;
break;
}
3. Вызывается соответствующая функция в обработчике событий нажатия кнопки вызова соответствующего диалога.
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDM_OPEN:
strcpy(szFile, "");
success = GetOpenFileName(&ofn);
if (success)
MessageBox(hWnd, ofn.lpstrFile, "Открывается файл:", MB_OK);
else
MessageBox(hWnd, ESC_OF"GetOpenFileName",
"Отказ от выбора или ошибка", MB_ICONWARNING);
break;
case IDM_SAVE_AS:
strcpy(szFile, "");
success = GetSaveFileName(&ofn);
if (success)
MessageBox(hWnd, ofn.lpstrFile,
"Файл сохраняется с именем:", MB_OK);
else
MessageBox(hWnd, ESC_OF"GetSaveFileName",
"Отказ от выбора или ошибка", MB_ICONWARNING);
break;
case IDM_BKGR_COLOR:
if (ChooseColor(&cc))
SetClassLong(hWnd, GCL_HBRBACKGROUND,
(LONG)CreateSolidBrush(cc.rgbResult));
break;
case IDM_TEXT_COLOR:
if (ChooseColor(&cc)) textColor = cc.rgbResult;
break;
case IDM_CHOOSE_FONT:
if(ChooseFont(&chf)) hFont = CreateFontIndirect(chf.lpLogFont);
break;
РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ
ЗАКЛЮЧЕНИЕ
В процессе разработки программы использовался в большом объеме теоретический материал ВУЗа и материал по программированию из учебников, вспомогательных электронных средств и средств Интернета, что способствовало закреплению наработанных навыков и умений в этих интересных областях знаний.
Полное тестирование программы показало что, программа реализована в полном объеме в соответствии с заданными требованиями и поставленной задачей. Полностью отлажена и проработана. Поставленная задача выполнена.
Программа построена на классе MFC для Win 32 приложений.
ЛИТЕРАТУРА
1. Д.Рихтер Создание эффективных Win32 приложений.
2. П. В. Румянцев Азбука программирования в WIN 32 API.
3. Ч. Петзолд. Программирование для Windows 95. ............