⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 txteditview.cpp

📁 日历算法日历算法日历算法日历算法日历算法日历算法日历算法日历算法日历算法日历算法日历算法日历算法
💻 CPP
字号:
// TxtEditView.cpp : implementation of the CTxtEditView class
//

#include "stdafx.h"
#include "TxtEdit.h"

#include "TxtEditDoc.h"
#include "TxtEditView.h"
#include "myfindreplacedlg.h"
#include "myfinddlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTxtEditView

IMPLEMENT_DYNCREATE(CTxtEditView, CEditView)

BEGIN_MESSAGE_MAP(CTxtEditView, CEditView)
	//{{AFX_MSG_MAP(CTxtEditView)
	ON_COMMAND(ID_FILE_SAVE, OnFileSave)
	ON_COMMAND(ID_EDIT_FIND, OnEditFind)
	ON_COMMAND(ID_EDIT_REPLACE, OnEditReplace)
	ON_UPDATE_COMMAND_UI(ID_EDIT_REPLACE, OnUpdateFileReplace)
	//}}AFX_MSG_MAP
	// 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)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTxtEditView construction/destruction

CTxtEditView::CTxtEditView()
{
	// TODO: add construction code here

}

CTxtEditView::~CTxtEditView()
{
}

BOOL CTxtEditView::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;
}

/////////////////////////////////////////////////////////////////////////////
// CTxtEditView drawing

void CTxtEditView::OnDraw(CDC* pDC)
{
	CTxtEditDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
}

/////////////////////////////////////////////////////////////////////////////
// CTxtEditView printing

BOOL CTxtEditView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default CEditView preparation
	return CEditView::OnPreparePrinting(pInfo);
}

void CTxtEditView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
	// Default CEditView begin printing.
	CEditView::OnBeginPrinting(pDC, pInfo);
}

void CTxtEditView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo)
{
	// Default CEditView end printing
	CEditView::OnEndPrinting(pDC, pInfo);
}

/////////////////////////////////////////////////////////////////////////////
// CTxtEditView diagnostics

#ifdef _DEBUG
void CTxtEditView::AssertValid() const
{
	CEditView::AssertValid();
}

void CTxtEditView::Dump(CDumpContext& dc) const
{
	CEditView::Dump(dc);
}

CTxtEditDoc* CTxtEditView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CTxtEditDoc)));
	return (CTxtEditDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CTxtEditView message handlers

void CTxtEditView::OnFileSave() 
{
	CString sFileName,sContent;
		
	GetWindowText(sContent);
	
	CDocument* pDoc = GetDocument();
	sFileName = pDoc->GetPathName();
	
	if (sFileName.GetLength() == 0)
	{
		CFileDialog dlg(FALSE,NULL,NULL,OFN_CREATEPROMPT|OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT);
		if (dlg.DoModal() == IDOK)
		{
			sFileName = dlg.GetPathName();
		//	AfxMessageBox(sFileName);
		}
	}

	CStdioFile f;
	if(f.Open(sFileName,CFile::modeCreate|CFile::modeReadWrite))
	{
		f.WriteString(sContent);
		f.Close();
		pDoc->SetModifiedFlag(FALSE);
		pDoc->SetPathName(sFileName);
	}

	
	
}

void CTxtEditView::OnEditFind() 
{
	//m_iFindIndex = 0;
	CMyFindDlg dlg;
	dlg.m_sFind = m_sFindContent;
		
	if (dlg.DoModal() == IDOK)
	{
		if (m_sFindContent.Compare(dlg.m_sFind) != 0)
		{
			m_sFindContent = dlg.m_sFind;
			m_iFindIndex = -1;
		}
		CString sContent;
		GetWindowText(sContent);
		m_iFindIndex = sContent.Find(dlg.m_sFind, m_iFindIndex+1);
		if ( m_iFindIndex > -1)
		{
			CEdit& e = GetEditCtrl();
			e.SetSel(m_iFindIndex, m_iFindIndex + dlg.m_sFind.GetLength());
		}
		else
		{
			AfxMessageBox("没有找到要搜索的内容,请从头开始搜索.",IDOK|IDCANCEL);
		}
	}
	
}

void CTxtEditView::OnEditReplace() 
{
	CMyFindReplaceDlg dlg;
	dlg.m_sFind = m_sFindContent;
	dlg.m_sReplace = m_sReplaceContent;
		
	if (dlg.DoModal() == IDOK)
	{
		if (m_sFindContent.Compare(dlg.m_sFind) != 0)
		{
			m_sFindContent = dlg.m_sFind;
			m_sReplaceContent = dlg.m_sReplace;
			m_iFindIndex = -1;
		}
		if (m_sReplaceContent.Compare(dlg.m_sReplace) != 0)
		{
			m_sFindContent = dlg.m_sFind;
			m_sReplaceContent = dlg.m_sReplace;
			m_iFindIndex = -1;
		}

		CString sContent;
		GetWindowText(sContent);
		sContent.Replace(dlg.m_sFind,dlg.m_sReplace);
		SetWindowText(sContent);
	}
	
}

void CTxtEditView::OnUpdateFileReplace(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(TRUE);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -