Смекни!
smekni.com

Проект текстового редактора (стр. 2 из 3)

//CEdit *pEdit = (CEdit *)(CMenuDlg *)GetDlgItem(IDC_EDIT1);

CEdit *pEdit = (CEdit *)(((CMenuDlg *)AfxGetMainWnd())->GetDlgItem(IDC_EDIT1));

pEdit->GetSel(nStart, nEnd);

if (!m_bFlagRepl)

{

OnBnClickedButton1();

m_bFlagRepl = TRUE;

}

else if (m_bFlagRepl && (nStart != nEnd))

{

//CEdit *pEdit = (CEdit *)((CMenuDlg *)m_pParent)->GetDlgItem(IDC_EDIT1);

CEdit *pEdit = (CEdit *)(((CMenuDlg *)AfxGetMainWnd())->GetDlgItem(IDC_EDIT1));

CEdit *pSours = (CEdit *)GetDlgItem(IDC_EDIT2);

CString strSours;

pSours->GetWindowText(strSours);

pEdit->ReplaceSel(strSours);

OnBnClickedButton1();

}

}

void Zamenit::OnEnChangeEdit22()

{

CString strFind1;

GetDlgItemText(IDC_EDIT22, strFind1);

CButton *p1 = (CButton *)GetDlgItem(IDC_BUTTON1);

CButton *p2 = (CButton *)GetDlgItem(IDC_BUTTON2);

CButton *p3 = (CButton *)GetDlgItem(IDC_BUTTON3);

if (strFind1 != _T(""))

{

p1->EnableWindow(TRUE);

p2->EnableWindow(TRUE);

p3->EnableWindow(TRUE);

}

else

{

p1->EnableWindow(FALSE);

p2->EnableWindow(FALSE);

p3->EnableWindow(FALSE);

}

}

void Zamenit::OnBnClickedButton3()//Заменитьвсе---------------------------

{

// Получаемдоступкполямввода

//CEdit *pEdit = (CEdit *)((CMenuDlg *)m_pParent)->GetDlgItem(IDC_EDIT1);

//CEdit *pEdit = (CEdit *)(CMenuDlg *)GetDlgItem(IDC_EDIT1);

CEdit *pEdit = (CEdit *)(((CMenuDlg *)AfxGetMainWnd())->GetDlgItem(IDC_EDIT1));

CEdit *pFind = (CEdit *)GetDlgItem(IDC_EDIT22);

//pEdit->SetSel(0, 0);

// Получаем текст из полей ввода

//CString strText, strFind;

pEdit->GetWindowText(strText);

pFind->GetWindowText(strFind);

int nStart, nEnd;

int nFindPos;

pEdit->GetSel(nStart, nEnd);

m_nStartPosR = nEnd;

nFindPos = strText.Find(strFind, m_nStartPosR);

m_nStartPosR = nFindPos + strFind.GetLength();

m_bFlagReplAll = TRUE;

int nCountText = strText.GetLength();

while (nCountText)

{

OnBnClickedButton2();

nCountText--;

}

pEdit->SetSel(0, 0);

m_bFlagReplAll = FALSE;

}

void Zamenit::OnDestroy()//Ондестрой---------------------------------------

{

CDialog::OnDestroy();

// Уничтожаемобъект

delete this;

//OnCancel();

// Сбрасываем указатель на дочернее окно в родительском окне

//((CMenuDlg *)m_pParent)->m_ppereutiDlg = NULL;

//((CMenuDlg *)AfxGetMainWnd())->m_ppereutiDlg = NULL;

//CEdit *pEdit = (CEdit *)(((CMenuDlg *)AfxGetMainWnd())->GetDlgItem(IDC_EDIT1));

// Уничтожаемдочернееокно

//DestroyWindow();

}

void Zamenit::OnBnClickedCancel()//Выход---------------------------------

{

OnCancel();

// Сбрасываем указатель на дочернее окно в родительском окне

((CMenuDlg *)m_pParentz)->m_zamenitDlg = NULL;

//((CMenuDlg *)AfxGetMainWnd())->m_ppereutiDlg = NULL;

// Уничтожаемдочернееокно

DestroyWindow();}

Кодмодуля pereuty.cpp

// pereuti.cpp : implementation file

//

#include "stdafx.h"

#include "Menu.h"

#include "pereuti.h"

// pereuti dialog

IMPLEMENT_DYNAMIC(pereuti, CDialog)

pereuti::pereuti(CWnd* pParent /*=NULL*/)

: CDialog(pereuti::IDD, pParent)

, m_position(0)

{

}

pereuti::~pereuti()

{

}

void pereuti::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

DDX_Text(pDX, IDC_EDIT1, m_position);

DDX_Control(pDX, IDC_EDIT1, m_edit_pereuti);

}

BEGIN_MESSAGE_MAP(pereuti, CDialog)

END_MESSAGE_MAP()

// pereuti message handlers

Код модуля MenuDlg.cpp(Основной)

// MenuDlg.cpp : implementation file **********************************************************************************

// Kamenev Alexej 40 01 02

// 417318 / 10

// MIDO BNTU

// Created by Keylo99er

//

//*********************************************************************************************************************

#include "stdafx.h"

#include "Menu.h"

#include "MenuDlg.h"

#include ".\menudlg.h"

#include "mein.h"

#include "m_nauti.h"

#include "Zamenit.h"

#include "pereuti.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

#define WM_TRAYICON (WM_APP + 1)

// CMenuDlg dialog

CMenuDlg::CMenuDlg(CWnd* pParent /*=NULL*/)

: CDialog(CMenuDlg::IDD, pParent)

, m_pAddDlg(NULL)

, m_zamenitDlg(NULL)

, m_nTimer(0)

, m_uTimer(0)

, m_bFlag(false)

, m_bFlMenu(false)

, m_strPath(_T("Безымянный"))

, m_strFileName(_T("*.txt"))

{

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

void CMenuDlg::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

DDX_Control(pDX, IDC_EDIT1, m_Edit1);

}

BEGIN_MESSAGE_MAP(CMenuDlg, CDialog)

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

//}}AFX_MSG_MAP

ON_COMMAND(ID_Sozdat, OnSozdat)

ON_COMMAND(ID_Wixod, OnWixod)

ON_COMMAND(ID_Otkrit, OnOtkrit)

ON_COMMAND(ID_Soxranit, OnSoxranit)

ON_COMMAND(ID_Soxranit_kak, OnSoxranitkak)

ON_COMMAND(ID_Wremja, OnWremja)

ON_COMMAND(ID_Widelit_wse, OnWidelitwse)

ON_COMMAND(ID_Shrift, OnShrift)

ON_WM_SIZE()

ON_COMMAND(ID_blokn, Onblokn)

ON_COMMAND(ID_Udalit, OnUdalit)

ON_COMMAND(ID_Wirezat, OnWirezat)

ON_COMMAND(ID_Kopirowat, OnKopirowat)

ON_COMMAND(ID_Wstawit, OnWstawit)

ON_COMMAND(ID_Otmenit, OnOtmenit)

ON_EN_CHANGE(IDC_EDIT1, OnEnChangeEdit1)

ON_WM_INITMENU()

ON_WM_CLOSE()

ON_COMMAND(ID_Sprawka_2, OnSprawka2)

ON_COMMAND(ID_Nauti, OnNauti)

ON_COMMAND(ID_Nauti_dalee, OnNautidalee)

ON_COMMAND(ID_Zamenit, OnZamenit)

ON_COMMAND(ID_T_, OnT)

ON_WM_TIMER()

ON_COMMAND(ID_TRAY_OPEN, OnTrayOpen)

ON_COMMAND(ID_TRAY_EXIT, OnTrayExit)

ON_MESSAGE(WM_TRAYICON, OnTrayIcon)

ON_COMMAND(ID_Trei, OnTrei)

ON_COMMAND(ID_Pereuti, OnPereuti)

ON_WM_INITMENUPOPUP()

END_MESSAGE_MAP()

// CMenuDlg message handlers

BOOL CMenuDlg::OnInitDialog()

{

CDialog::OnInitDialog();

// Set the icon for this dialog. The framework does this automatically

// when the application's main window is not a dialog

SetIcon(m_hIcon, TRUE);// Set big icon

SetIcon(m_hIcon, FALSE);// Set small icon

// TODO: Add extra initialization here

// SetTimer(1,500,0);

//--------------------------------------------------

CRect rcClient;

GetClientRect(rcClient);

rcClient.InflateRect(-2, -2, -2, -20);

GetDlgItem(IDC_EDIT1)->MoveWindow(rcClient);

//------------------------------------------------

//Акселератор

m_hAccel = ::LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR1));

//----------------------------------------------------

// Инициализируемшрифттекста

CFont *pFontText = m_Edit1.GetFont();

LOGFONT lfText;

pFontText->GetLogFont(&lfText);

m_fontText.CreateFontIndirect(&lfText);

//m_editMain.m_menuPopup.LoadMenu(IDR_MENU_POPUP);

//----------------------------------------------------

//StatusBar

m_wndStatusBar.Create(WS_CHILD | WS_VISIBLE | CCS_BOTTOM | SBARS_SIZEGRIP,

CRect(0, 0, 0, 0), this, IDC_STATUS_BAR);

CRect rect;

m_wndStatusBar.GetClientRect(&rect);

int nParts[] = {rect.right - 200, - 1};

CString strPartsStatusBar;

strPartsStatusBar.Format(_T("Стр %d, стлб %d"), m_nStrStatusBar = 1, m_nStolbetsStatusBar= 1);

m_wndStatusBar.SetParts(sizeof(nParts)/sizeof(nParts[0]), nParts);

m_wndStatusBar.SetText(strPartsStatusBar, 1, 0);

m_nTimer = SetTimer(1, 100, NULL);

m_wndStatusBar.ShowWindow(SW_SHOW);

//-------------------------------------------------------

//tray

m_menuTray.LoadMenu(IDR_MENU2);

m_nidTray.cbSize = sizeof(NOTIFYICONDATA);

m_nidTray.hWnd = m_hWnd;

m_nidTray.uID = ID_TRAYICON;

m_nidTray.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;

m_nidTray.hIcon = AfxGetApp()->LoadIcon(IDI_ICON1);

m_nidTray.uCallbackMessage = WM_TRAYICON;

_tcscpy(m_nidTray.szTip, _T("БлокнотЛехиКаменева"));

//--------------------------------------------------------

CMenu* MENU = GetMenu();

CMenu* sibmenu = MENU->GetSubMenu(1);

sibmenu->EnableMenuItem(ID_Otmenit, MF_BYCOMMAND | MF_GRAYED);

CMenu* MENU1 = GetMenu();

CMenu* submenu = MENU1->GetSubMenu(1);

submenu->EnableMenuItem(ID_Wirezat, MF_BYCOMMAND | MF_GRAYED);

CMenu* MENU2 = GetMenu();

CMenu* sebmenu = MENU2->GetSubMenu(1);

sebmenu->EnableMenuItem(ID_Kopirowat, MF_BYCOMMAND | MF_GRAYED);

CMenu* MENU3 = GetMenu();

CMenu* sobmenu = MENU3->GetSubMenu(1);

sobmenu->EnableMenuItem(ID_Udalit, MF_BYCOMMAND | MF_GRAYED);

//----------------------------------------------------------------

m_pAddDlg = NULL;

return TRUE; // return TRUE unless you set the focus to a control

}

// If you add a minimize button to your dialog, you will need the code below

// to draw the icon. For MFC applications using the document/view model,

// this is automatically done for you by the framework.

void CMenuDlg::OnPaint()

{

if (IsIconic())

{

CPaintDC dc(this); // device context for painting

SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

// Center icon in client rectangle

int cxIcon = GetSystemMetrics(SM_CXICON);

int cyIcon = GetSystemMetrics(SM_CYICON);

CRect rect;

GetClientRect(&rect);

int x = (rect.Width() - cxIcon + 1) / 2;

int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon

dc.DrawIcon(x, y, m_hIcon);

}

else

{

CDialog::OnPaint();

}

}

// The system calls this function to obtain the cursor to display while the user drags

// the minimized window.

HCURSOR CMenuDlg::OnQueryDragIcon()

{

return static_cast<HCURSOR>(m_hIcon);

}

void CMenuDlg::OnSozdat()//Создать ------------------------------

{

CString str_77 , strText;

CString str_r;

m_Edit1.GetWindowText(str_r);

if (str_r == _T(""))

{

//Beep(1000,100);

}

else if (str_r != _T(""))

{

UINT uRes = MessageBox(_T("Текст в файле Безымянный был изменньон &bsol;n&bsol;n Сохранить изменение?"),

_T("Блокнот(Alexa)"), MB_YESNOCANCEL | MB_ICONWARNING);

if (uRes == IDYES)

{

CFileDialog fileDlg(FALSE,_T(".txt"),NULL,NULL,"Text Files(*.txt) |*.txt|",NULL);

if(fileDlg.DoModal() == IDOK)

{

CStdioFile f;

if(!f.Open(fileDlg.GetPathName(), CFile::modeCreate | CFile::modeWrite))

{

MessageBox("Не могу сохранить файл");

return;

}

/*while (f.ReadString(str_77))

{

if (!strText.IsEmpty())

strText += "&bsol;r&bsol;n";

strText += str_77;

}*/

CString str;

m_Edit1.GetWindowText(str);

f.Write(str, str.GetLength());

f.Close();

SetDlgItemText(IDC_EDIT1, strText);

m_strPath = fileDlg.GetPathName();

m_strFileName = f.GetFileName();

SetWindowText(m_strFileName + _T("-Блокнот(Alexa)"));

CEdit *mEdit = (CEdit *)GetDlgItem(IDC_EDIT1);

mEdit->SetSel(0,-1);

mEdit->Clear();

//m_strPath = _T("Безымянный");

SetWindowText(_T("Безымянный-Блокнот(Alexa)"));

}

}

if (uRes == IDNO)

{

CEdit *mEdit = (CEdit *)GetDlgItem(IDC_EDIT1);

mEdit->SetSel(0,-1);

mEdit->Clear();

//m_strPath = _T("Безымянный");

SetWindowText(_T("Безымянный-Блокнот(Alexa)"));

}

}

}

BOOL CMenuDlg::PreTranslateMessage(MSG* pMsg)

{

if (pMsg->message >= WM_KEYFIRST && pMsg->message <= WM_KEYLAST)

return ::TranslateAccelerator(m_hWnd, m_hAccel, pMsg);

return CDialog::PreTranslateMessage(pMsg);

}

void CMenuDlg::OnWixod()//Выход--------------------------------------------

{CString str_77, strText;

CString str_r;

CStdioFile f;

m_Edit1.GetWindowText(str_r);

if (str_r == _T(""))

{

EndDialog(0);

return;

}

else if (str_r != _T(""))

{

UINT uRes = MessageBox(_T("Текст в файле Безымянный был изменньон &bsol;n&bsol;n Сохранить изменение?"),

_T("Блокнот"), MB_YESNOCANCEL | MB_ICONWARNING);

if (uRes == IDYES)

{

//CString path;

CFileDialog fileDlg(FALSE,_T(".txt"),NULL,NULL,"Text Files(*.txt) |*.txt|",NULL);

if(fileDlg.DoModal() == IDOK)

{

//path = fdlg.GetPathName();

//CFile f;

if(!f.Open(fileDlg.GetPathName(), CFile::modeCreate | CFile::modeWrite))

{

MessageBox("Не могу сохранить файл");

return;

}

while (f.ReadString(str_77))

{

if (!strText.IsEmpty())

strText += "&bsol;r&bsol;n";

strText += str_77;

}

SetDlgItemText(IDC_EDIT1, strText);

m_strPath = fileDlg.GetPathName();

m_strFileName = f.GetFileName();

SetWindowText(m_strFileName + _T("-Блокнот"));

}

}

if (uRes == IDNO)

{

EndDialog(0);

//CDialog::OnClose();

}

if (uRes == IDCANCEL)

{

}

}

}

void CMenuDlg::OnOtkrit()//Открыть----------------------------------------

{

CString str_77 , strText;

CStdioFile f;

CString str_r;

m_Edit1.GetWindowText(str_r);

if (str_r == _T(""))

{

CFileDialog fileDlg(TRUE, _T(".txt"), NULL,

OFN_ALLOWMULTISELECT | OFN_FILEMUSTEXIST,

_T("All Files (*.*) |*.*| Text Files(*.txt) | *.txt| Word Files(*.doc) |*.doc|"));

if (fileDlg.DoModal() == IDOK)

{

if (!f.Open(fileDlg.GetPathName(), CFile::modeRead | CFile::typeText))

{

MessageBox("Не могу открыть файл");

return;

}

while (f.ReadString(str_77))

{

if (!strText.IsEmpty())

strText += "&bsol;r&bsol;n";

strText += str_77;

}

/*CString str;

m_Edit1.GetWindowText(str);

f.Write(str, str.GetLength());

f.Close();*/

SetDlgItemText(IDC_EDIT1, strText);

m_strPath = fileDlg.GetPathName();

m_strFileName = f.GetFileName();

SetWindowText(m_strFileName + _T("-Блокнот"));

}

}

else if (str_r != _T(""))

{

UINT uRes = MessageBox(_T("Текст в файле Безымянный был изменньон &bsol;n&bsol;n Сохранить изменение?"),

_T("Блокнот"), MB_YESNOCANCEL | MB_ICONWARNING);

if (uRes == IDYES)

{

//CString path;

CFileDialog fileDlg(FALSE,_T(".txt"),NULL,NULL,"Text Files(*.txt) |*.txt|",NULL);

if(fileDlg.DoModal() == IDOK)

{

//path = fdlg.GetPathName();

//CFile f;

if(!f.Open(fileDlg.GetPathName(), CFile::modeCreate | CFile::modeWrite))

{

MessageBox("Не могу сохранить файл");

return;

}

while (f.ReadString(str_77))

{

if (!strText.IsEmpty())

strText += "&bsol;r&bsol;n";

strText += str_77;

}

SetDlgItemText(IDC_EDIT1, strText);

m_strPath = fileDlg.GetPathName();

m_strFileName = f.GetFileName();

SetWindowText(m_strFileName + _T("-Блокнот"));

}

CFileDialog fileDlg1(TRUE, _T(".txt"), NULL,

OFN_ALLOWMULTISELECT | OFN_FILEMUSTEXIST,

_T("All Files (*.*) |*.*| Text Files(*.txt) | *.txt| Word Files(*.doc) |*.doc|"));

if (fileDlg1.DoModal() == IDOK)

{

if (!f.Open(fileDlg1.GetPathName(), CFile::modeRead | CFile::typeText))

{

MessageBox("Не могу открыть файл");