Реферат по предмету "Информатика, программирование"


Проект текстового редактора

СОДЕРЖАНИЕ
Постановка задачи
Краткие теоретические сведения
Результаты выполнения программы
Заключение
Литература
Листинг программы

ПОСТАНОВКАЗАДАЧИ
Составить Win32 App проект простейший текстовый редактор, которыйпозволяет выполнять операции редактирование текста, копирование и вставку изодного окна проекта в другое окно проекта. Использовать вызов диалоговсохранения и открытия файла, а также диалог выбора шрифта. Все диалогиприменяются к тексту в редакторе.

КРАТКИЕТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Работа с функциями вызовастандартных диалогов производится следующим образом:
1. Объявляются переменныесоответствующих структур:
static COLORREF textColor;
// Переменные длястандартных диалогов «Open»,«Save as»
static OPENFILENAME ofn;
static char szFile[MAX_PATH];
// Переменные длястандартного диалога «Color»
staticCHOOSECOLOR cc; // common dialog box structure
staticCOLORREF acrCustClr[16]; // array of custom colors
// Переменные длястандартного диалога «Font»
staticCHOOSEFONT chf;
static HFONThFont;
static LOGFONT lf;
2. Инициализируютсясоответствующие структуры в обработчике события создания окна (окна диалога).
switch (uMsg)
{
caseWM_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. Вызываетсясоответствующая функция в обработчике событий нажатия кнопки вызовасоответствующего диалога.
caseWM_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;
caseIDM_SAVE_AS:
strcpy(szFile,"");
success = GetSaveFileName(&ofn);
if (success)
MessageBox(hWnd,ofn.lpstrFile,
«Файл сохраняется с именем:», MB_OK);
else
MessageBox(hWnd,ESC_OF«GetSaveFileName»,
«Отказ от выбора илиошибка», MB_ICONWARNING);
break;
caseIDM_BKGR_COLOR:
if (ChooseColor(&cc))
SetClassLong(hWnd,GCL_HBRBACKGROUND,
(LONG)CreateSolidBrush(cc.rgbResult));
break;
caseIDM_TEXT_COLOR:
if (ChooseColor(&cc))textColor = cc.rgbResult;
break;
caseIDM_CHOOSE_FONT:
if(ChooseFont(&chf))hFont = CreateFontIndirect(chf.lpLogFont);
break;
РЕЗУЛЬТАТЫВЫПОЛНЕНИЯ ПРОГРАММЫ
/>

/>
/>
/>

ЗАКЛЮЧЕНИЕ
Впроцессе разработки программы использовался в большом объеме теоретическийматериал ВУЗа и материал по программированию из учебников, вспомогательныхэлектронных средств и средств Интернета, что способствовало закреплениюнаработанных навыков и умений в этих интересных областях знаний.
Полноетестирование программы показало что, программа реализована в полном объеме всоответствии с заданными требованиями и поставленной задачей. Полностьюотлажена и проработана. Поставленная задача выполнена.
Программапостроена на классе MFC для Win32 приложений.

ЛИТЕРАТУРА
1.        Д.Рихтер Созданиеэффективных Win32 приложений.
2.        П. В. РумянцевАзбука программирования в WIN 32API.
3.        Ч. Петзолд.Программирование для Windows95. Том 1.
4.        Архипова Е.Н.Электронный курс по WIN 32 API.

ЛИСТИНГПРОГРАММЫ
Код модуля mein.cpp
// mein.cpp:implementation file
//
#include«stdafx.h»
#include«Menu.h»
#include«mein.h»
// mein dialog
IMPLEMENT_DYNAMIC(mein,CDialog)
mein::mein(CWnd*pParent /*=NULL*/)
:CDialog(mein::IDD, pParent)
{
}
mein::~mein()
{
}
voidmein::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(mein,CDialog)
END_MESSAGE_MAP()
// meinmessage handlers
Кодмодуляmenu.cpp
// Menu.cpp:Defines the class behaviors for the application.
//
#include«stdafx.h»
#include«Menu.h»
#include«MenuDlg.h»
#ifdef _DEBUG
#define newDEBUG_NEW
#endif
// CMenuApp
BEGIN_MESSAGE_MAP(CMenuApp,CWinApp)
ON_COMMAND(ID_HELP,CWinApp::OnHelp)
END_MESSAGE_MAP()
// CMenuAppconstruction
CMenuApp::CMenuApp()
{
// TODO: addconstruction code here,
// Place allsignificant initialization in InitInstance
}
// The one andonly CMenuApp object
CMenuApptheApp;
// CMenuAppinitialization
BOOLCMenuApp::InitInstance()
{
//InitCommonControls() is required on Windows XP if an application
// manifestspecifies use of ComCtl32.dll version 6 or later to enable
// visualstyles. Otherwise, any window creation will fail.
InitCommonControls();
CWinApp::InitInstance();
// Standardinitialization
// If you arenot using these features and wish to reduce the size
// of yourfinal executable, you should remove from the following
// thespecific initialization routines you do not need
// Change theregistry key under which our settings are stored
// TODO: Youshould modify this string to be something appropriate
// such as thename of your company or organization
SetRegistryKey(_T(«LocalAppWizard-Generated Applications»));
CMenuDlg dlg;
m_pMainWnd =&dlg;
INT_PTRnResponse = dlg.DoModal();
if (nResponse== IDOK)
{
// TODO: Placecode here to handle when the dialog is
// dismissedwith OK
}
else if(nResponse == IDCANCEL)
{
// TODO: Placecode here to handle when the dialog is
// dismissedwith Cancel
}
// Since thedialog has been closed, return FALSE so that we exit the
// application,rather than start the application's message pump.
return FALSE; }
Кодмодуляnauti.cpp
// m_nauti.cpp: implementation file
//
#include«stdafx.h»
#include«Menu.h»
#include«m_nauti.h»
#include".\m_nauti.h"
#include«MenuDlg.h»
#include
usingnamespace std;
// m_nautidialog
IMPLEMENT_DYNAMIC(m_nauti,CDialog)
m_nauti::m_nauti(CWnd*pParent /*=NULL*/)
:CDialog(m_nauti::IDD, pParent)
,m_pParent(pParent)
,m_nStartPos(0)
,strFind(_T(""))
,m_strText(_T(""))
,n_radio1(false)
,n_radio2(false)
,ddx_222(false)
{
}
m_nauti::~m_nauti()
{
}
voidm_nauti::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX,IDC_EDIT11, edit);
DDX_Control(pDX,IDC_BUTTON1, nauti_dalee);
DDX_Control(pDX,IDC_RADIO1, ddx_radio);
DDX_Radio(pDX,IDC_RADIO2, ddx_222);
}
BEGIN_MESSAGE_MAP(m_nauti,CDialog)
ON_EN_CHANGE(IDC_EDIT11,OnEnChangeEdit11)
ON_BN_CLICKED(IDC_BUTTON1,OnBnClickedButton1)
ON_BN_CLICKED(IDCANCEL,OnBnClickedCancel)
ON_WM_DESTROY()
END_MESSAGE_MAP()
BOOLm_nauti::OnInitDialog()
{
CDialog::OnInitDialog();
//CEdit *pEdit= (CEdit *)GetDlgItem(IDC_EDIT11);
//pEdit->SetFocus();
//SetFocus();
return TRUE; //return TRUE unless you set the focus to a control
// EXCEPTION:OCX Property Pages should return FALSE
}
// m_nautimessage handlers
voidm_nauti::OnEnChangeEdit11()// Едит---------------------------------
{
//CEdit*pmyEdit = (CEdit *)GetDlgItem(IDC_EDIT11);
//pmyEdit->SetFocus();
//SetFocus();
CString str;
edit.GetWindowText(str);
if(str.GetLength()>0)
{
nauti_dalee.ModifyStyle(WS_DISABLED,0);
nauti_dalee.Invalidate(FALSE);
}
else
{
nauti_dalee.ModifyStyle(0,WS_DISABLED);
nauti_dalee.Invalidate(FALSE);
}
}
voidm_nauti::OnFind()//Галочка вниз--------------------------------------------
{
CButton*pBtnFind = (CButton *)GetDlgItem(IDC_BUTTON1);
// Получаем доступк полям ввода
CEdit *pEdit =(CEdit *)((CMenuDlg *)m_pParent)->GetDlgItem(IDC_EDIT1);
CEdit *pFind =(CEdit *)GetDlgItem(IDC_EDIT11);
// Получаем текст изполей ввода
pFind->GetWindowText(strFind);
if(!IsDlgButtonChecked(IDC_CHECK1))
{
m_strText.MakeLower();
strFind.MakeLower();
}
int nStart,nEnd;
int nFindPos;
pEdit->GetSel(nStart,nEnd);
m_nStartPos =nEnd;
if (n_radio2)
{
nFindPos =m_strText.Find(strFind);
n_radio2 =FALSE;
}
else
nFindPos =m_strText.Find(strFind, m_nStartPos);
if (nFindPos== -1)
{
if (!n_radio1)
MessageBox(_T(«Неудается найти \»") + strFind + _T("\"")
,_T(«Блокнот»), MB_OK | MB_ICONINFORMATION);
}
else
{
// Нашли — выделяем найденное
pEdit->SetSel(nFindPos,nFindPos + strFind.GetLength());
// Определяем позицию, скоторой надо продолжать поиск
m_nStartPos =nFindPos + strFind.GetLength();
}
}
voidm_nauti::OnBnClickedButton1()//Найти далее---------------------------
{
CButton*pBtnFind = (CButton *)GetDlgItem(IDC_BUTTON1);
// Получаем доступк полям ввода
CEdit *pEdit =(CEdit *)((CMenuDlg *)m_pParent)->GetDlgItem(IDC_EDIT1);
CEdit *pFind =(CEdit *)GetDlgItem(IDC_EDIT11);
CStringstrFind;
pEdit->GetWindowText(m_strText);
pFind->GetWindowText(strFind);
int nStart,nEnd;
int nFindPos;
if(IsDlgButtonChecked(IDC_RADIO2))
OnFind();
if(IsDlgButtonChecked(IDC_RADIO1))
{
if(!IsDlgButtonChecked(IDC_CHECK1))
{
m_strText.MakeLower();
strFind.MakeLower();
}
n_radio1 =TRUE;
n_radio2 =TRUE;
pEdit->GetSel(nStart,nEnd);
CString sz;
int nCountText= m_strText.GetLength();
int nCountFind= strFind.GetLength();
int n =m_strText.Delete(nStart, nCountText);
string strTmp= m_strText;
static constbasic_string ::size_type npos = -1;
size_t ind =strTmp.rfind (strFind);
if (ind !=npos )
pEdit->SetSel((int)ind,ind + nCountFind);
else
MessageBox(_T(«Не удается найти \»") + strFind + _T("\"")
,_T(«Блокнот»), MB_OK | MB_ICONINFORMATION);
n_radio1 =FALSE;
n_radio2 =FALSE;
}
GetDlgItem(IDC_EDIT11)->SetFocus();
}
voidm_nauti::OnBnClickedCancel()//Выход------------------------------
{
OnCancel();
// Сбрасываем указательна дочернее окно в родительском окне
((CMenuDlg*)m_pParent)->m_pAddDlg = NULL;
// Уничтожаем дочернее окно
DestroyWindow();
}
voidm_nauti::OnDestroy()//ОН дестрой--------------------------------------
{
CDialog::OnDestroy();
// Уничтожаем объект
delete this;
}
Код модуля zamenit.cpp
// Zamenit.cpp: implementation file
//
#include«stdafx.h»
#include«Menu.h»
#include«Zamenit.h»
#include".\zamenit.h"
#include«MenuDlg.h»
// Zamenitdialog
IMPLEMENT_DYNAMIC(Zamenit,CDialog)
Zamenit::Zamenit(CWnd*pParent /*=NULL*/)
:CDialog(Zamenit::IDD, pParent)
,m_pParentz(pParent)
,m_nStartPosR(0)
,m_bFlagRepl(false)
,m_bFlagReplAll(false)
,strText(_T(""))
,strFind(_T(""))
{
}
Zamenit::~Zamenit()
{
//m_pParentz =pParent;
}
voidZamenit::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(Zamenit,CDialog)
ON_BN_CLICKED(IDC_BUTTON1,OnBnClickedButton1)
ON_BN_CLICKED(IDC_BUTTON2,OnBnClickedButton2)
ON_EN_CHANGE(IDC_EDIT22,OnEnChangeEdit22)
ON_BN_CLICKED(IDC_BUTTON3,OnBnClickedButton3)
ON_WM_DESTROY()
ON_BN_CLICKED(IDCANCEL,OnBnClickedCancel)
END_MESSAGE_MAP()
// Zamenitmessage handlers
voidZamenit::OnBnClickedButton1()//Найти далее----------------------------
{
// Получаем доступк полям ввода
CEdit *pEdit =(CEdit *)(((CMenuDlg *)AfxGetMainWnd())->GetDlgItem(IDC_EDIT1));
CEdit *pFind =(CEdit *)GetDlgItem(IDC_EDIT22);
// Получаем текст изполей ввода
//CString strText,strFind;
pEdit->GetWindowText(strText);
pFind->GetWindowText(strFind);
if(!IsDlgButtonChecked(IDC_CHECK1))
{
strText.MakeLower();
strFind.MakeLower();
}
int nStart,nEnd;
int nFindPos;
pEdit->GetSel(nStart,nEnd);
m_nStartPosR =nEnd;
nFindPos =strText.Find(strFind, m_nStartPosR);
if (nFindPos== -1 && !m_bFlagReplAll)
{
MessageBox(_T(«Не удается найти \»") + strFind + _T("\"")
,_T(«Блокнот»), MB_OK | MB_ICONINFORMATION);
}
else
{
// Нашли — выделяем найденное
pEdit->SetSel(nFindPos,nFindPos + strFind.GetLength());
// Определяем позицию, скоторой надо продолжать поиск
m_nStartPosR =nFindPos + strFind.GetLength();
}
m_bFlagRepl =TRUE;
}
voidZamenit::OnBnClickedButton2()//Заменить---------------------------
{
int nStart,nEnd;
//CEdit *pEdit= (CEdit *)((CMenuDlg *)m_pParent)->GetDlgItem(IDC_EDIT1);
//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);
CStringstrSours;
pSours->GetWindowText(strSours);
pEdit->ReplaceSel(strSours);
OnBnClickedButton1();
}
}
voidZamenit::OnEnChangeEdit22()
{
CStringstrFind1;
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);
}
}
voidZamenit::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);
// Получаем текст изполей ввода
//CStringstrText, 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;
}
voidZamenit::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();
}
voidZamenit::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»
// pereutidialog
IMPLEMENT_DYNAMIC(pereuti,CDialog)
pereuti::pereuti(CWnd*pParent /*=NULL*/)
:CDialog(pereuti::IDD, pParent)
,m_position(0)
{
}
pereuti::~pereuti()
{
}
voidpereuti::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()
// pereutimessage handlers
Код модуля MenuDlg.cpp(Основной)
// MenuDlg.cpp: implementation file**********************************************************************************
// KamenevAlexej 40 01 02
// 417318 / 10
// MIDO BNTU
// Created byKeylo99er
//
//*********************************************************************************************************************
#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
#defineWM_TRAYICON (WM_APP + 1)
// CMenuDlgdialog
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);
}
voidCMenuDlg::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()
// CMenuDlgmessage handlers
BOOLCMenuDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set theicon for this dialog. The framework does this automatically
// when theapplication's main window is not a dialog
SetIcon(m_hIcon,TRUE);// Set big icon
SetIcon(m_hIcon,FALSE);// Set small icon
// TODO: Addextra initialization here
//SetTimer(1,500,0);
//--------------------------------------------------
CRectrcClient;
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();
LOGFONTlfText;
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};
CStringstrPartsStatusBar;
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 adda minimize button to your dialog, you will need the code below
// to draw theicon. For MFC applications using the document/view model,
// this isautomatically done for you by the framework.
voidCMenuDlg::OnPaint()
{
if(IsIconic())
{
CPaintDCdc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND,reinterpret_cast(dc.GetSafeHdc()), 0);
// Center iconin 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 theicon
dc.DrawIcon(x,y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The systemcalls this function to obtain the cursor to display while the user drags
// theminimized window.
HCURSORCMenuDlg::OnQueryDragIcon()
{
returnstatic_cast(m_hIcon);
}
voidCMenuDlg::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(«Текст в файле Безымянный был изменньон \n\n Сохранитьизменение?»),
_T(«Блокнот(Alexa)»), MB_YESNOCANCEL |MB_ICONWARNING);
if (uRes ==IDYES)
{
CFileDialogfileDlg(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 +="\r\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)»));
}
}
}
BOOLCMenuDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message >= WM_KEYFIRST && pMsg->message
return::TranslateAccelerator(m_hWnd, m_hAccel, pMsg);
returnCDialog::PreTranslateMessage(pMsg);
}
voidCMenuDlg::OnWixod()//Выход--------------------------------------------
{CStringstr_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(«Текст в файле Безымянный был изменньон \n\n Сохранитьизменение?»),
_T(«Блокнот»), MB_YESNOCANCEL |MB_ICONWARNING);
if (uRes ==IDYES)
{
//CString path;
CFileDialogfileDlg(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 +="\r\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)
{
}
}
}
voidCMenuDlg::OnOtkrit()//Открыть----------------------------------------
{
CString str_77, strText;
CStdioFile f;
CString str_r;
m_Edit1.GetWindowText(str_r);
if (str_r ==_T(""))
{
CFileDialogfileDlg(TRUE, _T(".txt"), NULL,
OFN_ALLOWMULTISELECT| OFN_FILEMUSTEXIST,
_T(«AllFiles (*.*) |*.*| 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 +="\r\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(«Текст в файле Безымянный был изменньон \n\n Сохранитьизменение?»),
_T(«Блокнот»), MB_YESNOCANCEL |MB_ICONWARNING);
if (uRes ==IDYES)
{
//CStringpath;
CFileDialogfileDlg(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 +="\r\n";
strText +=str_77;
}
SetDlgItemText(IDC_EDIT1,strText);
m_strPath =fileDlg.GetPathName();
m_strFileName= f.GetFileName();
SetWindowText(m_strFileName+ _T("-Блокнот"));
}
CFileDialogfileDlg1(TRUE, _T(".txt"), NULL,
OFN_ALLOWMULTISELECT| OFN_FILEMUSTEXIST,
_T(«AllFiles (*.*) |*.*| Text Files(*.txt) | *.txt| Word Files(*.doc) |*.doc|»));
if(fileDlg1.DoModal() == IDOK)
{
if(!f.Open(fileDlg1.GetPathName(), CFile::modeRead | CFile::typeText))
{
MessageBox(«Не могуоткрыть файл»);
return;
}
while (f.ReadString(str_77))
{
if(!strText.IsEmpty())
strText +="\r\n";
strText +=str_77;
}
SetDlgItemText(IDC_EDIT1,strText);
m_strPath =fileDlg1.GetPathName();
m_strFileName= f.GetFileName();
SetWindowText(m_strFileName+ _T("-Блокнот"));
}
}
if (uRes ==IDNO)
{
CFileDialogfileDlg(TRUE, _T(".txt"), NULL,
OFN_ALLOWMULTISELECT| OFN_FILEMUSTEXIST,
_T(«AllFiles (*.*) |*.*| 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 +="\r\n";
strText +=str_77;
}
SetDlgItemText(IDC_EDIT1,strText);
m_strPath =fileDlg.GetPathName();
m_strFileName= f.GetFileName();
SetWindowText(m_strFileName+ _T("-Блокнот"));
}
}
}
}
voidCMenuDlg::OnSoxranit()//Сохранить-------------------------------
{
if (m_strPath== _T(«Безымянный») )
OnSoxranitkak();
else
{
CStdioFilefile;
if(!file.Open(m_strFileName
,CFile::modeCreate | CFile::modeWrite | CFile::typeText))
{
AfxMessageBox(_T(«Немогу открыть файл.»));
return;
}
CEdit *pEditor= (CEdit *)GetDlgItem(IDC_EDIT1);
int nLines =pEditor->GetLineCount();
CString str;
for (int i =0; i
{
int nLen =pEditor->LineLength(pEditor->LineIndex(i));
pEditor->GetLine(i,str.GetBuffer(nLen), nLen);
str.ReleaseBuffer(nLen);
if (i > 0)
str =_T("\n") + str;
file.WriteString(str);
}
}
}
voidCMenuDlg::OnSoxranitkak()//Сохранить как------------------------
{
CStringstr_77, strText;
CFileDialogfileDlg(FALSE,_T(".txt"),NULL,NULL,«Text Files(*.txt) |*.txt|»,NULL);
if(fileDlg.DoModal()== IDOK)
{
//path =fileDlg.GetPathName();
CStdioFile f;
if(!f.Open(fileDlg.GetPathName(),CFile::modeCreate | CFile::modeWrite))
{
MessageBox(«Не могусохранить файл»);
return;
}
/*while(f.ReadString(str_77))
{
if(!strText.IsEmpty())
strText +="\r\n";
strText +=str_77;
}
SetDlgItemText(IDC_EDIT1,strText);
m_strPath =fileDlg.GetPathName();
m_strFileName= f.GetFileName();
SetWindowText(m_strFileName+ _T("-Блокнот(Alexa)"));*/
CEdit *pEditor= (CEdit *)GetDlgItem(IDC_EDIT1);
int nLines =pEditor->GetLineCount();
CString str;
for (int i =0; i
{
int nLen =pEditor->LineLength(pEditor->LineIndex(i));
pEditor->GetLine(i,str.GetBuffer(nLen), nLen);
str.ReleaseBuffer(nLen);
if (i > 0)
str =_T("\n") + str;
f.WriteString(str);
}
m_strPath =fileDlg.GetPathName();
m_strFileName= f.GetFileName();
SetWindowText(m_strFileName+ _T(" — Блокнот"));
}
}
void CMenuDlg::OnWremja()//Время---------------------------------------
{
CEdit *pmyEdit= (CEdit *)GetDlgItem(IDC_EDIT1);
CString str,str2, str3;
int nashalo,konec;
CTime time =CTime::GetCurrentTime();
UpdateData();
str =time.Format(_T("%H:%M %d.%m.%Y"));
pmyEdit->GetSel(nashalo,konec);
GetDlgItemText(IDC_EDIT1,str3);
str3.Insert(konec,str);
SetDlgItemText(IDC_EDIT1,str3);
pmyEdit->SetSel(nashalo+ 17, konec + 17);
}
voidCMenuDlg::OnWidelitwse()//Выделить все---------------------------
{
CEdit *mEdit =(CEdit *)GetDlgItem(IDC_EDIT1);
mEdit->SetSel(0,-1);
mEdit->SetFocus();
}
voidCMenuDlg::OnShrift() //Шрифт-----------------------------------------------
{
LOGFONTlfText;
m_fontText.GetLogFont(&lfText);
CFontDialogfontDlg(&lfText);
if (fontDlg.DoModal())
{fontDlg.GetCurrentFont(&lfText);
m_fontText.DeleteObject();
m_fontText.CreateFontIndirect(&lfText);
m_Edit1.SetFont(&m_fontText);}
}
voidCMenuDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType,cx, cy);
if(IsWindow(m_wndStatusBar.m_hWnd))
{
m_wndStatusBar.MoveWindow(0,0, 0, 0);
CRect rect;
m_wndStatusBar.GetClientRect(&rect);
int nParts[] ={rect.right — 200, — 1};
m_wndStatusBar.SetParts(sizeof(nParts)/sizeof(nParts[0]),nParts);
CStringstrPartsStatusBar;
strPartsStatusBar.Format(_T(«Строка %d, столбец %d»), m_nStrStatusBar, m_nStolbetsStatusBar);
}
CWnd *pEdit =GetDlgItem(IDC_EDIT1);
if (pEdit !=NULL)
{
CRectrcClient;
GetClientRect(rcClient);
rcClient.InflateRect(-2,-2, -2, -20);
pEdit->MoveWindow(rcClient);
if(IsWindow(m_Edit1.m_hWnd))
{
m_wndStatusBar.MoveWindow(0,0, 0, 0);
CRectclientRect1;
CRectclientRStatusBar1;
GetClientRect(clientRect1);
m_wndStatusBar.GetClientRect(clientRStatusBar1);
CRect cx =clientRect1;
cx.bottom =clientRect1.bottom — clientRStatusBar1.Height();
m_Edit1.MoveWindow(cx);
}
CMenu* pMenu =GetMenu()->GetSubMenu(3);
UINT state =pMenu->GetMenuState(1, MF_BYPOSITION);
if (nType ==SIZE_MINIMIZED && state & MF_CHECKED)
{
ShowWindow(SW_HIDE);
Shell_NotifyIcon(NIM_ADD,&m_nidTray);
//m_uTimer =SetTimer(1, 500, NULL);
nIcon = 0;
}/*
static UINTrgIconID[] =
{
IDI_ICON1,IDI_ICON2, IDI_ICON3, IDI_ICON4
};
nIcon++;
if (nIcon ==4) nIcon = 0;
m_nidTray.hIcon= AfxGetApp()->LoadIcon(rgIconID[nIcon]);
Shell_NotifyIcon(NIM_MODIFY,&m_nidTray);
*/
}
}
voidCMenuDlg::Onblokn()//Модальное окно О блокноте---------------
{
mein dlg;
if(dlg.DoModal() == IDOK)
{
Beep(1500,300);
}
}
voidCMenuDlg::OnUdalit()//Удалить---------------------------------------
{
CEdit *mEdit =(CEdit *)GetDlgItem(IDC_EDIT1);
mEdit->Clear();
mEdit->SetFocus();
}
voidCMenuDlg::OnWirezat()//Вырезать-----------------------------------
{
CEdit *mEdit =(CEdit *)GetDlgItem(IDC_EDIT1);
mEdit->Cut();
mEdit->SetFocus();
}
voidCMenuDlg::OnKopirowat()//Копировать--------------------------------
{
CEdit *mEdit =(CEdit *)GetDlgItem(IDC_EDIT1);
mEdit->Copy();
mEdit->SetFocus();
}
voidCMenuDlg::OnWstawit()//Вставить-------------------------------------
{
CEdit *mEdit =(CEdit *)GetDlgItem(IDC_EDIT1);
mEdit->Paste();
mEdit->SetFocus();
}
VoidCMenuDlg::OnOtmenit()//Отменить----------------------------------
{
CEdit *mEdit =(CEdit *)GetDlgItem(IDC_EDIT1);
mEdit->Undo();
mEdit->SetFocus();
}
voidCMenuDlg::OnEnChangeEdit1()//Едит------------------------------
{
//CEdit *mEdit= (CEdit *)GetDlgItem(IDC_EDIT1);
//mEdit->SetSel(0,0);
CString str_4;
m_Edit1.GetWindowText(str_4);
if (str_4 !=_T(""))
{
CMenu* MENU =GetMenu();
CMenu* sibmenu= MENU->GetSubMenu(1);
sibmenu->EnableMenuItem(ID_Otmenit,MF_BYCOMMAND | MF_ENABLED );
}
/*elseif(str_4 ==_T(""))
{
CMenu* MENU =GetMenu();
CMenu* sibmenu= MENU->GetSubMenu(1);
sibmenu->EnableMenuItem(ID_Otmenit,MF_BYCOMMAND | MF_GRAYED);
}*/
/*
CString str_5;
m_Edit1.GetWindowText(str_5);
if (str_5 !=_T(""))
{
CMenu* MENU2 =GetMenu();
CMenu* sebmenu= MENU2->GetSubMenu(1);
sebmenu->EnableMenuItem(ID_Wirezat,MF_BYCOMMAND | MF_ENABLED );
}
else if(str_5==_T(""))
{
CMenu* MENU2 =GetMenu();
CMenu* sebmenu= MENU2->GetSubMenu(1);
sebmenu->EnableMenuItem(ID_Wirezat,MF_BYCOMMAND | MF_GRAYED);
}
CString str_6;
m_Edit1.GetWindowText(str_6);
if (str_6 !=_T(""))
{
CMenu* MENU2 =GetMenu();
CMenu* sebmenu= MENU2->GetSubMenu(1);
sebmenu->EnableMenuItem(ID_Udalit,MF_BYCOMMAND | MF_ENABLED );
}
else if(str_5==_T(""))
{
CMenu* MENU2 =GetMenu();
CMenu* sebmenu= MENU2->GetSubMenu(1);
sebmenu->EnableMenuItem(ID_Udalit,MF_BYCOMMAND | MF_GRAYED);
}*/
}
voidCMenuDlg::OnInitMenu(CMenu* pMenu)
{
CDialog::OnInitMenu(pMenu);
}
voidCMenuDlg::OnClose()//Закрытие-------------------------------------
{
CString str_r;
m_Edit1.GetWindowText(str_r);
if (str_r ==_T(""))
{
EndDialog(0);
return;
}
else if (str_r!= _T(""))
{
UINT uRes =MessageBox(_T(«Текст в файле Безымянный был изменньон \n\n Сохранитьизменение?»),
_T(«Блокнот»), MB_YESNOCANCEL |MB_ICONWARNING);
if (uRes ==IDYES)
{
CString path;
CFileDialogfdlg(FALSE,_T(".txt"),NULL,NULL,«Text Files(*.txt)|*.txt|»,NULL);
if(fdlg.DoModal()== IDOK)
{
path =fdlg.GetPathName();
CFile f;
if(!f.Open(path,CFile::modeCreate | CFile::modeWrite))
{
MessageBox(«Не могусохранить файл»);
return;
}
CString str;
m_Edit1.GetWindowText(str);
f.Write(str,str.GetLength());
f.Close();
}
}
if (uRes ==IDNO)
{
CDialog::OnClose();
}
if (uRes ==IDCANCEL)
{}
}
KillTimer(m_uTimer);
KillTimer(m_nTimer);
//CDialog::OnClose();
}
voidCMenuDlg::OnSprawka2()//Вызов справки----------------------------
{
MessageBox(_T(«Самопалот Лехи „) ,
_T(“Блокнот»), MB_OK | MB_ICONINFORMATION);
}
voidCMenuDlg::OnNauti()//Найти-------------------------------------------------
{
if(!m_pAddDlg)
{
m_pAddDlg =new m_nauti (this);
m_pAddDlg->Create(IDD_M_NAUTI);
}
m_pAddDlg->ShowWindow(SW_SHOW);
m_pAddDlg->SetForegroundWindow();
m_Find = TRUE;
}
voidCMenuDlg::OnNautidalee()//Найти далее-------------------------------
{
OnNauti();
/*if (!m_Find)
OnEditMfind();
else
m_nauti->OnNauti();*/
}
voidCMenuDlg::OnZamenit()//Заменить--------------------------------------
{
CEdit *pEdit =(CEdit *)GetDlgItem(IDC_EDIT1);
pEdit->SetSel(0,0);
if(!m_zamenitDlg)
{
// Создаем объект дочернего окна
m_zamenitDlg =new Zamenit (this);
// Создаем дочернее окно
m_zamenitDlg->Create(IDD_ZAMENIT);
}
// Показываем дочернее окно
m_zamenitDlg->ShowWindow(SW_SHOW);
m_zamenitDlg->SetForegroundWindow();
//Zamenit dlg;
//if(dlg.DoModal() == IDCANCEL)
//{
////Beep(1500,300);
//}
}
voidCMenuDlg::OnT()//строка состояние-------------------------------------
{
CMenu* pMenu =GetMenu()->GetSubMenu(3);
CWnd *pEdit =GetDlgItem(IDC_EDIT1);
CRectrcEditSize;
UINT state =pMenu->GetMenuState(0, MF_BYPOSITION);
if (state& MF_CHECKED)
{
//Beep(100,100);
/*Beep(200,100);Beep(300,100);Beep(400,100);Beep(500,100);Beep(600,100);
Beep(700,100);Beep(800,100);Beep(900,100);Beep(1000,100);Beep(1100,100);
Beep(1200,100);Beep(1300,100);Beep(1400,100);Beep(1500,100);Beep(1600,100);
Beep(1700,100);Beep(1800,100);Beep(1900,100);Beep(2000,100);Beep(2100,100);
Beep(2500,500);Beep(1900,100);Beep(1800,100);Beep(1700,100);Beep(1600,100);
Beep(1500,100);Beep(1400,100);Beep(1300,100);Beep(1200,100);Beep(1100,100);
Beep(1000,100);Beep(900,100);Beep(800,100);Beep(700,100);Beep(600,100);
Beep(500,100);Beep(400,100);Beep(300,100);Beep(200,100);Beep(100,500);*/
pMenu->CheckMenuItem(0,MF_UNCHECKED | MF_BYPOSITION);
m_wndStatusBar.ShowWindow(SW_HIDE);
GetClientRect(rcEditSize);
rcEditSize.InflateRect(-2,-2);
pEdit->MoveWindow(rcEditSize);
m_bFlMenu =FALSE;
}
else
{
pMenu->CheckMenuItem(0,MF_CHECKED | MF_BYPOSITION);
m_wndStatusBar.ShowWindow(SW_SHOW);
GetClientRect(rcEditSize);
rcEditSize.InflateRect(-2,-2, -2, -20);
pEdit->MoveWindow(rcEditSize);
m_bFlMenu =TRUE;
}
}
voidCMenuDlg::OnTimer(UINT nIDEvent)//Он таймер-------------------
{
CStringstrPartsStatusBar;
CEdit *pmyEdit= (CEdit *)GetDlgItem(IDC_EDIT1);
int nStart,nEnd;
pmyEdit->GetSel(nStart,nEnd);
m_nStrStatusBar= pmyEdit->LineFromChar(nStart);
m_nStolbetsStatusBar= nEnd — pmyEdit->LineIndex(m_nStrStatusBar);
strPartsStatusBar.Format(_T(«Стр %d, стлб %d»), m_nStrStatusBar + 1, m_nStolbetsStatusBar + 1);
m_wndStatusBar.SetText(strPartsStatusBar,1, 0);
//m_wndStatusBar.ShowWindow(SW_SHOW);
CDialog::OnTimer(nIDEvent);
}
LRESULTCMenuDlg::OnTrayIcon(WPARAM wParam, LPARAM lParam)//Трай-----------------------
{
if (wParam !=ID_TRAYICON || (lParam != WM_LBUTTONUP && lParam != WM_RBUTTONUP))
return 0L;
if (lParam ==WM_LBUTTONUP)
{
OnTrayOpen();
}
else if(lParam == WM_RBUTTONUP)
{
CPoint pt;
GetCursorPos(&pt);
CMenu*pTrayMenu = m_menuTray.GetSubMenu(0);
// Исправляем баг сконтекстным меню (см. MSDN Knowledge Base: 135788)
SetForegroundWindow();
pTrayMenu->TrackPopupMenu(TPM_LEFTALIGN| TPM_RIGHTBUTTON, pt.x, pt.y, this);
// Исправляем баг сконтекстным меню (см. MSDN Knowledge Base: 135788)
PostMessage(WM_NULL,0, 0);
}
return 0;
}
voidCMenuDlg::OnTrayOpen()
{
ShowWindow(SW_RESTORE);
SetForegroundWindow();
Shell_NotifyIcon(NIM_DELETE,&m_nidTray);
}
voidCMenuDlg::OnTrayExit()
{
Shell_NotifyIcon(NIM_DELETE,&m_nidTray);
EndDialog(0);
}
voidCMenuDlg::OnTrei()
{
CMenu* pMenu =GetMenu()->GetSubMenu(3);
UINT state =pMenu->GetMenuState(1, MF_BYPOSITION);
if (state ==MF_CHECKED)
{
pMenu->CheckMenuItem(1,MF_UNCHECKED | MF_BYPOSITION);
}
else
{
pMenu->CheckMenuItem(1,MF_CHECKED | MF_BYPOSITION);
}
}
voidCMenuDlg::OnPereuti()//перейти-----------------------------------------
{
/*
pereuti move;
CStringstr,str1;
int index;
int lines;
//DWORD word;
lines =m_Edit1.GetLineCount();
str1 =_T(«Столько строк нет!!! их всего: „);
str.Format(_T(“%d»),lines);
str1 += str;
//word =m_Edit.GetSel();
index =m_Edit1.LineFromChar()+1;
//index =m_Edit1.GetLineCount();
move.m_position= index;
//move.Goto_Edit.SetSel(0,-1);
if(move.DoModal() ==IDOK)
{
//move.m_edit_pereuti.SetSel(0,-1);
if(lines
AfxMessageBox(str1);
else
m_Edit1.SetSel(m_Edit1.LineIndex(move.m_position-1),
m_Edit1.LineIndex(move.m_position-1));
}*/
pereuti move;
CString str,str1;
int index;
int lines;
lines =m_Edit1.GetLineCount();
str1 =_T(«Столько строк нет!!! их всего: „);
str.Format(_T(“%d»),lines);
str1 += str;
index =m_Edit1.LineFromChar() + 1;
move.m_position = index;
if(move.DoModal() ==IDOK)
{
//move.m_edit_pereuti.SetSel(0,-1);
if(index >=m_Edit1.LineIndex(move.m_position-1))
AfxMessageBox(str1);
else
m_Edit1.SetSel(m_Edit1.LineIndex(move.m_position-1),
m_Edit1.LineIndex(move.m_position-1));
}
}
voidCMenuDlg::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu)
{
CDialog::OnInitMenuPopup(pPopupMenu,nIndex, bSysMenu);
CEdit *pEdit =(CEdit *)GetDlgItem(IDC_EDIT1);
intnFerstChar, nSecondChar;
CStringstrEdit;
pEdit->GetSel(nFerstChar,nSecondChar);
pEdit->GetWindowText(strEdit);
UINT format =CF_TEXT;
BOOLbClipboard = IsClipboardFormatAvailable(format);
//pPopupMenu->EnableMenuItem(ID_Otmenit,
//MF_BYCOMMAND| (bClipboard == FALSE? MF_GRAYED: MF_ENABLED));
//pPopupMenu->EnableMenuItem(ID_Otmenit,
//MF_BYCOMMAND| (m_bFlag == FALSE? MF_GRAYED: MF_ENABLED));
pPopupMenu->EnableMenuItem(ID_Wirezat,
MF_BYCOMMAND |(nFerstChar == nSecondChar? MF_GRAYED: MF_ENABLED));
pPopupMenu->EnableMenuItem(ID_Kopirowat,
MF_BYCOMMAND |(nFerstChar == nSecondChar? MF_GRAYED: MF_ENABLED));
pPopupMenu->EnableMenuItem(ID_Udalit,
MF_BYCOMMAND |(nFerstChar == nSecondChar? MF_GRAYED: MF_ENABLED));
pPopupMenu->EnableMenuItem(ID_Nauti,
MF_BYCOMMAND |(strEdit == _T("")? MF_GRAYED: MF_ENABLED));
pPopupMenu->EnableMenuItem(ID_Zamenit,
MF_BYCOMMAND |(strEdit == _T("")? MF_GRAYED: MF_ENABLED));
pPopupMenu->EnableMenuItem(ID_Nauti_dalee,
MF_BYCOMMAND |(strEdit == _T("")? MF_GRAYED: MF_ENABLED));
}


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

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

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.