Смекни!
smekni.com

Текстовый редактор (стр. 2 из 2)

Меню Окно имеет следующие пункты: Новое окно, Каскадом, Заголовками, Сортировать иконки, за разделителем располагаются имена открытых файлов, а галочкой помечается тот файл, с которым работают. При создание нового документа окно открывается прямо в программе, а не в новом файле. По желанию пользователь может расположить их каскадом или заголовками для удобства работы.

Меню Помощь содержит информацию о программе.


5. ЗАКЛЮЧЕНИЕ

В ходе выполнения курсовой работы предоставленная программа была выполнена и работала. Конечно это простой текстовый редактор и у него мало функций по сравнению с MSWORD. Он чем-то похож на простой блокнот.

Единственное его отличие что он был написан на языке С++. Язык С++ работал без наладок, был прост в обращении, возникающие ошибке при программировании легко исправлялись. С++ зарекомендовал себя с лучшей стороны, и я бы порекомендовал его как для начинающих программистов так и для профессионалов.


6. СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Эффективная работа: Visual C++. Net. – СПб.: Питер, 2002. – 816 с.: ил.

2. C++, Объективно – ориентированное программирование: Практикум. – СПб.: Питер, 2004. – 265 с.: ил.

3. C/C++. Программирование на языке высокого уровня – СПб.: Питер, 2005. – 461 с.: ил.

4. Круглински Д.Д., Уингоу С., Шеферд Д. Программирование на Microsoft Visual C++ 6.0 : Пер. с англ..-СПб.- М. Харьков - Минск: Питер; Русская редакция, 2000.-821 с.: ил. + CD-ROM.


7. ПРИЛОЖЕНИЕ

Файл EDitApp.cpp. Этот файл является основным файлом приложения.Он включает в себя определение класса CEditApp.

#include "stdafx.h"

#include "EditApp.h"

#include "MainFrm.h"

#include "ChildFrm.h"

#include "EditAppDoc.h"

#include "EditAppView.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

// CEditAppApp

BEGIN_MESSAGE_MAP(CEditAppApp, CWinApp)

ON_COMMAND(ID_APP_ABOUT, &CEditAppApp::OnAppAbout)

// Standard file based document commands

ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)

ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)

// Standard print setup command

ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)

END_MESSAGE_MAP()

// CEditAppApp construction

CEditAppApp::CEditAppApp()

{

// TODO: add construction code here,

// Place all significant initialization in InitInstance

}

// The one and only CEditAppApp object

CEditAppApp theApp;

// CEditAppApp initialization

BOOL CEditAppApp::InitInstance()

{

// InitCommonControlsEx() is required on Windows XP if an application

// manifest specifies use of ComCtl32.dll version 6 or later to enable

// visual styles. Otherwise, any window creation will fail.

INITCOMMONCONTROLSEX InitCtrls;

InitCtrls.dwSize = sizeof(InitCtrls);

// Set this to include all the common control classes you want to use

// in your application.

InitCtrls.dwICC = ICC_WIN95_CLASSES;

InitCommonControlsEx(&InitCtrls);

CWinApp::InitInstance();

// Initialize OLE libraries

if (!AfxOleInit())

{

AfxMessageBox(IDP_OLE_INIT_FAILED);

return FALSE;

}

AfxEnableControlContainer();

// Standard initialization

// If you are not using these features and wish to reduce the size

// of your final executable, you should remove from the following

// the specific initialization routines you do not need

// Change the registry key under which our settings are stored

// TODO: You should modify this string to be something appropriate

// such as the name of your company or organization

SetRegistryKey(_T("Local AppWizard-Generated Applications"));

LoadStdProfileSettings(4); // Load standard INI file options (including MRU)

// Register the application's document templates. Document templates

// serve as the connection between documents, frame windows and views

CMultiDocTemplate* pDocTemplate;

pDocTemplate = new CMultiDocTemplate(IDR_EditAppTYPE,

RUNTIME_CLASS(CEditAppDoc),

RUNTIME_CLASS(CChildFrame), // custom MDI child frame

RUNTIME_CLASS(CEditAppView));

if (!pDocTemplate)

return FALSE;

AddDocTemplate(pDocTemplate);

// create main MDI Frame window

CMainFrame* pMainFrame = new CMainFrame;

if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))

{

delete pMainFrame;

return FALSE;

}

m_pMainWnd = pMainFrame;

// call DragAcceptFiles only if there's a suffix

// In an MDI app, this should occur immediately after setting m_pMainWnd

// Parse command line for standard shell commands, DDE, file open

CCommandLineInfo cmdInfo;

ParseCommandLine(cmdInfo);

// Dispatch commands specified on the command line. Will return FALSE if

// app was launched with /RegServer, /Register, /Unregserver or /Unregister.

if (!ProcessShellCommand(cmdInfo))

return FALSE;

// The main window has been initialized, so show and update it

pMainFrame->ShowWindow(m_nCmdShow);

pMainFrame->UpdateWindow();

return TRUE;

}

// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog

{

public:

CAboutDlg();

// Dialog Data

enum { IDD = IDD_ABOUTBOX };

protected:

virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support

// Implementation

protected:

DECLARE_MESSAGE_MAP()

};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)

{

}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)

END_MESSAGE_MAP()

// App command to run the dialog

void CEditAppApp::OnAppAbout()

{

CAboutDlg aboutDlg;

aboutDlg.DoModal();

}

// CEditAppApp message handlers

Перваякартасообщений (конструкцияBEGIN_MESSAGE_MAP

END_MESSAGE_MAP) принадлежитклассуСEditApp. Внейсообщениясиндетификатором ID_APP_ABOUT, ID_FILE_NEW, ID_FILE_OPEN,

ID_FILE_PRINT_SETUP связываютсясоответственнособработчиками OnAppAbout(), CWinApp::OnFileNew(), CWinApp::OnFileOpen(), CWinApp::OnFilePrintSetup(). В этом файле реализуется конструктор класса СEditApp, а также его методы OnAppAbout() и InitInstance().

Файл MainFrm.cpp. Этот файл содержит реализацию класса CMainFrame, которой порождается от класса CFrameWnd и управляет всеми дочерними MDI-окнами.

#include "stdafx.h"

#include "EditApp.h"

#include "MainFrm.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

// CMainFrame

IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)

ON_WM_CREATE()

END_MESSAGE_MAP()

static UINT indicators[] =

{

ID_SEPARATOR, // status line indicator

ID_INDICATOR_CAPS,

ID_INDICATOR_NUM,

ID_INDICATOR_SCRL,

};

// CMainFrame construction/destruction

CMainFrame::CMainFrame()

{

// TODO: add member initialization code here

}

CMainFrame::~CMainFrame()

{

}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)

return -1;

if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP

| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||

!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))

{

TRACE0("Failed to create toolbar\n");

return -1; // fail to create

}

if (!m_wndStatusBar.Create(this) ||

!m_wndStatusBar.SetIndicators(indicators,

sizeof(indicators)/sizeof(UINT)))

{

TRACE0("Failed to create status bar\n");

return -1; // fail to create

}

// TODO: Delete these three lines if you don't want the toolbar to be dockable

m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);

EnableDocking(CBRS_ALIGN_ANY);

DockControlBar(&m_wndToolBar);

return 0;

}

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)

{

if( !CMDIFrameWnd::PreCreateWindow(cs) )

return FALSE;

// TODO: Modify the Window class or styles here by modifying

// the CREATESTRUCT cs

return TRUE;

}

// CMainFrame diagnostics

#ifdef _DEBUG

void CMainFrame::AssertValid() const

{

CMDIFrameWnd::AssertValid();

}

void CMainFrame::Dump(CDumpContext& dc) const

{

CMDIFrameWnd::Dump(dc);

}

#endif //_DEBUG

// CMainFrame message handlers

В массиве indicators перечислены идентификаторы полей строки состояния, которые служат индикаторами нажатия некоторых клавиш. Добавление в окно приложения панели инструментов и строки состояния производится выделенным полужирным шрифтом. Функции-члены AssertValid() и

Dump() используют объявления содержащиеся родительском классе. Класс

CMainFrame изначально не имеет обработчиков сообщений.

ФайлEditAppDoc.cpp. Этот файл содержит реализацию класса CEditAppDoc, Который управляет работой с конкретными документами, а также обеспечивает загрузку и сохранение файлов.

#include "stdafx.h"

#include "EditApp.h"

#include "EditAppDoc.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

// CEditAppDoc

IMPLEMENT_DYNCREATE(CEditAppDoc, CDocument)

BEGIN_MESSAGE_MAP(CEditAppDoc, CDocument)

END_MESSAGE_MAP()

// CEditAppDoc construction/destruction

CEditAppDoc::CEditAppDoc()

{

// TODO: add one-time construction code here

}

CEditAppDoc::~CEditAppDoc()

{

}

BOOL CEditAppDoc::OnNewDocument()

{

if (!CDocument::OnNewDocument())

return FALSE;

// TODO: add reinitialization code here

// (SDI documents will reuse this document)

return TRUE;

}

// CEditAppDoc serialization

void CEditAppDoc::Serialize(CArchive& ar)

{

// CEditView contains an edit control which handles all serialization

reinterpret_cast<CEditView*>(m_viewList.GetHead())->SerializeRaw(ar);

}

// CEditAppDoc diagnostics

#ifdef _DEBUG

void CEditAppDoc::AssertValid() const

{

CDocument::AssertValid();

}

void CEditAppDoc::Dump(CDumpContext& dc) const

{

CDocument::Dump(dc);

}

#endif //_DEBUG

// CEditAppDoc commands

Некоторые методы классаCEditAppDoc могут применяться для поддержки самых необходимых операций работы с документами. В функции OnNewDocument() используются эта же функция из родительского класса

<CEditView*>(m_viewList.GetHead())->SerializeRaw(ar);

Эта строка кода поддерживает работу команд меню File, обеспечивающих создание, открытие и сохранение файлов. Функции-члены AssertValid() и

Dump() используют описание, предлагаемое родительским классом.

ФайлCEditAppView.cpp. Этот файл содержит реализацию класса CEditAppView, который порождается от класса CEditView и управляет отображением документа.

#include "stdafx.h"

#include "EditApp.h"

#include "SeekDialog.h"

#include "EditAppDoc.h"

#include "EditAppView.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

// CEditAppView

IMPLEMENT_DYNCREATE(CEditAppView, CEditView)

BEGIN_MESSAGE_MAP(CEditAppView, CEditView)

// Standard printing commands

ON_COMMAND(ID_FILE_PRINT, &CEditView::OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_DIRECT, &CEditView::OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CEditView::OnFilePrintPreview)

ON_COMMAND(ID_SEEK, &CEditAppView::OnSeek)

END_MESSAGE_MAP()

// CEditAppView construction/destruction

CEditAppView::CEditAppView()

{

// TODO: add construction code here

}

CEditAppView::~CEditAppView()

{

}

BOOL CEditAppView::PreCreateWindow(CREATESTRUCT& cs)

{

// TODO: Modify the Window class or styles here by modifying

// the CREATESTRUCT cs

BOOL bPreCreated = CEditView::PreCreateWindow(cs);

cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL); // Enable word-wrapping

return bPreCreated;

}

// CEditAppView printing

BOOL CEditAppView::OnPreparePrinting(CPrintInfo* pInfo)

{

// default CEditView preparation

return CEditView::OnPreparePrinting(pInfo);

}

void CEditAppView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)

{

// Default CEditView begin printing

CEditView::OnBeginPrinting(pDC, pInfo);

}

void CEditAppView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo)

{

// Default CEditView end printing

CEditView::OnEndPrinting(pDC, pInfo);

}

// CEditAppView diagnostics

#ifdef _DEBUG

void CEditAppView::AssertValid() const

{

CEditView::AssertValid();

}

void CEditAppView::Dump(CDumpContext& dc) const

{

CEditView::Dump(dc);

}

CEditAppDoc* CEditAppView::GetDocument() const // non-debug version is inline

{

ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CEditAppDoc)));

return (CEditAppDoc*)m_pDocument;

}

#endif //_DEBUG

// CEditAppView message handlers

void CEditAppView::OnSeek()

{

// TODO: Add your command handler code here

CSeekDialog dlg(this);

if( dlg.DoModal() == IDOK){

FindText( dlg.m_Sample);

}

}

КлассCEditAppView управляетпечатьюдокументовспомощьюфункций OnPreparePrinting(), OnBeginPrinting(),OnEndPrinting(). Выделенный полужирным шрифтом тектс отвечает за поиск слов в тексте.