
- •Техническое задание
- •2.Краткие теоретические сведения
- •2.1.Особенности создания приложений для ос Windows.
- •2.2. Краткая характеристика owl и структура owl-программы.
- •3. Состав и характеристики файлов проекта
- •4. Стандартные классы и функции приложения
- •Стандартные классы owl, используемые в приложении.
- •Стандартные функции классов owl, используемых в приложении.
- •5. Пользовательские классы и функции приложения
- •5.1 Перечень разработанных классов, их данных и методов
- •5.2.Иерархия классов приложения
- •6.Системные требования
- •7. Руководство по эксплуатации
- •Список литературы
Список литературы
Горнец Н.Н., Рощин А.Г., Черкасова Н.И., Половов Р.М., Климова Т.Д. Пособие по выполнению курсовых и дипломных проектов и работ для студентов специальности 220100 дневного обучения. – М.: МГТУ ГА, 2002.
Подбельский В.В. Язык Си++. – М.: Финансы и статистика, 1996
Т. Сван. Программирование для Windows в Borland С++. – М.: Бином, 1995
Финогненов К.Г. Win32. Основы программирования. – 2-е изд., испр. И дополн. – М.: ДИАЛОГ-МИФИ, 2006. – 416 с.
Черкасова Н.И. Операционные системы. Пособие к выполнению курсовой работы. – М.: МГТУ ГА, 2003. – 48 с.
Приложение А
Листинг файла с исходным кодом программы (kp.cpp)
#include <owl\applicat.h>
#include <owl\decmdifr.h>
#include <owl\editfile.h>
#include <owl\mdi.h>
#include <owl\mdichild.h>
#include <owl\mdi.rh>
#include <owl\gadget.h>
#include <owl\messageb.h>
#include <owl\toolbox.h>
#include <owl\controlb.h>
#include <owl\statusba.h>
#include <owl\buttonga.h>
#include "kp.rh"
class TDecoChild:public TMDIChild
{
public:
TDecoChild(TMDIClient& parent, const char far *name);
TDecoChild(TMDIClient& parent);
protected:
string filename;
};
TDecoChild::TDecoChild(TMDIClient& parent):TMDIChild(parent)
{
filename="";
}
TDecoChild::TDecoChild(TMDIClient& parent, const char far *name)
:TMDIChild(parent, name)
{
filename=name;
}
class TDecoClient:public TMDIClient
{
public:
TDecoClient():TMDIClient() {}
TDecoClient* client;
};
class TDecoApp: public TApplication
{
public:
TDecoApp(const char far* name):TApplication(){}
void InitMainWindow();
protected:
TDecoClient *client;
TControlBar *controlBar;
void CmFileNew();
void CmFileOpen();
DECLARE_RESPONSE_TABLE (TDecoApp);
};
DEFINE_RESPONSE_TABLE1(TDecoApp, TApplication)
EV_COMMAND (CM_FILENEW, CmFileNew),
EV_COMMAND (CM_FILEOPEN, CmFileOpen),
END_RESPONSE_TABLE;
void TDecoApp::CmFileNew()
{
TEditFile *editFile = new TEditFile;
TMDIChild *childWnd = new TMDIChild (*client, "", editFile);
childWnd->SetIconSm(this,IDI_ICON3);
childWnd->Create();
}
void TDecoApp::CmFileOpen()
{
TOpenSaveDialog::TData fileData (OFN_FILEMUSTEXIST |
OFN_HIDEREADONLY | OFN_PATHMUSTEXIST,
"Все файлы (*.*) | *.* |Текстовые файлы (*.txt) | *.txt |", 0, 0, " * ");
strcpy(fileData.FileName, "");
TFileOpenDialog *dialog =
new TFileOpenDialog (MainWindow, fileData);
int result = dialog->Execute();
if (result == IDOK)
{
TEditFile *editFile =
new TEditFile (0, 0, 0, 0, 0, 0, 0, fileData.FileName);
TMDIChild *childWnd =
new TMDIChild (*client, "", editFile);
childWnd->SetIcon (this, IDI_ICON3);
childWnd->Create();
}
controlBar->SetHintCommand (-1);}
void TDecoApp::InitMainWindow()
{
client = new TDecoClient;
TDecoratedMDIFrame *frame = new TDecoratedMDIFrame ("Текстовый редактор",
MENU_1, *client, TRUE);
frame->Attr.AccelTable=MENU_1;
frame->AssignMenu(MENU_1);
frame->SetBkgndColor(RGB(0,0,255));
frame->Attr.X = 100;
frame->Attr.Y = 100;
frame->Attr.W = 650;
frame->Attr.H = 400;
controlBar = new TControlBar (frame);
controlBar->Insert(*new TButtonGadget(ID_NEW, CM_FILENEW));
controlBar->Insert(*new TSeparatorGadget (10));
controlBar->Insert(*new TButtonGadget(ID_CUT, CM_EDITCUT));
controlBar->Insert(*new TButtonGadget(ID_COPY, CM_EDITCOPY));
controlBar->Insert(*new TButtonGadget(ID_PASTE, CM_EDITPASTE));
controlBar->Insert(*new TButtonGadget(ID_UNDO, CM_EDITUNDO));
controlBar->SetHintMode(TGadgetWindow::EnterHints);
frame->Insert(*controlBar, TDecoratedFrame::Top);
TStatusBar *statusBar = new TStatusBar (0,
TGadget::Recessed,
TStatusBar::CapsLock | TStatusBar::NumLock |
TStatusBar::Overtype);
frame->Insert(*statusBar, TDecoratedFrame::Bottom);
frame->SetIconSm(this, IDI_ICON2);
frame->SetIcon(this, IDI_ICON2);
EnableCtl3d (TRUE);
SetMainWindow(frame);
}
int OwlMain(int,char *[])
{
TDecoApp app("Сохранение");
return app.Run();
}
Приложение Б
Листинг файла сценария ресурсов kp.rc
MENU_1 MENU
{
POPUP "&File"
{
MENUITEM "&New", CM_FILENEW
MENUITEM SEPARATOR
MENUITEM "E&xit F1", CM_EXIT
}
POPUP "&Edit"
{
MENUITEM "&Undo", CM_EDITUNDO
MENUITEM SEPARATOR
MENUITEM "&Cut", CM_EDITCUT
MENUITEM "C&opy", CM_EDITCOPY
MENUITEM "&Paste", CM_EDITPASTE
MENUITEM "&Delete", CM_EDITDELETE
}
}
STRINGTABLE
{
CM_FILENEW, "Создание нового документа"
102, "Выход из редактора"
CM_EDITUNDO, "Отменить последнюю операцию"
CM_EDITCOPY, "Скопировать выделенный текст в буфер обмена"
CM_EDITCUT, "Поместить выделенный текст в буфер обмена"
CM_EDITPASTE, "Вставить текст из буфера"
CM_EDITDELETE, "Удалить выделенный текст"
IDS_UNABLEWRITE, "Ошибка при записи файла %s на диск."
IDS_FILECHANGED, "Этот файл был изменен. \n\nСохранить изменения?"
IDS_CANNOTFIND, "Фрагмент ""%s"" отсутствует."
}
ACCELERATORS_2 ACCELERATORS
{
VK_F1, 108, VIRTKEY
}
Приложение В
Листинг заголовочного файла kp.rh
//#define IDB_BITMAP1 102
#define ACCELERATORS_2 2
#define MENU_1 100
#define ID_MDIEDIT 101
#define ID_SAVE CM_FILESAVE
#define ID_PASTE CM_EDITPASTE
#define ID_OPEN CM_FILEOPEN
#define ID_NEW CM_FILENEW
#define ID_CUT CM_EDITCUT
#define ID_COPY CM_EDITCOPY
#define ID_UNDO CM_EDITUNDO
//#define CM_HELPABOUT 24346