记事本之文本编辑器MFC/C++


用C++MFC实现的文本编辑器,有打开、新建、保存以及另存为功能,有复制剪切粘贴删除全选以及撤销功能,查找、查找下一个以及替换功能。界面仿Windows记事本。
资源截图
代码片段和文件信息
// CdialogFind.cpp: 实现文件
//

#include “stdafx.h“
#include “TextEditor.h“
#include “CdialogFind.h“
#include “afxdialogex.h“
#include “Resource.h“
#include

// CdialogFind 对话框

IMPLEMENT_DYNAMIC(CdialogFind CDialogEx)
CdialogFind *CdialogFind::ptr_Find = NULL;
CdialogFind::CdialogFind(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_FINDDIALOG pParent)
{
ptr_Find=this;
}

CdialogFind::~CdialogFind()
{
}

void CdialogFind::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}


BEGIN_MESSAGE_MAP(CdialogFind CDialogEx)

ON_BN_CLICKED(IDC_BUTTONFIND &CdialogFind::OnBnClickedButtonfind)




END_MESSAGE_MAP()


// CdialogFind 消息处理程序


const int maxNum = 1005;
//Sunday
int shift[maxNum];
int Sunday(const CString& T const CString& P);

void CdialogFind::OnBnClickedButtonfind()
{

CString mainText;
CString aimText;
CTextEditorView *pView = CTextEditorView::ptr_View;
pView->GetDlgItem(IDC_EDIT)->GetWindowText(mainText);
GetDlgItem(IDC_EDIT1)->GetWindowText(aimText);
int cur = mainText.Find(aimText0);    //C++类实现(CString的find方法)
//int cur = Sunday(mainText aimText); //自定义Sunday算法匹配字符串 英文可以查找 中文不行

int aimLen = aimText.GetLength();
pView->m_wndEdit.SetSel(cur cur+aimLen); 

//int nStart nEnd;
//pView->m_wndEdit.GetSel(nStart nEnd);
//if (nStart == nEnd) //判断是否有内容被选中
if(cur==-1)
MessageBox(_T(“没有该内容“));
CdialogFind::OnCancel();
}


int Sunday(const CString& T const CString& P) {
int n = T.GetLength();
int m = P.GetLength();

// 默认值,移动m+1位
for (int i = 0; i < maxNum; i++) {
shift[i] = m + 1;
}

// 模式串P中每个字母出现的最后的下标
// 所对应的主串参与匹配的最末位字符的下一位字符移动到该位,所需要的移动位数
for (int i = 0; i < m; i++) {
shift[P[i]] = m - i;
}

// 模式串开始位置在主串的哪里
int s = 0;
// 模式串已经匹配到的位置
int j;
while (s <= n - m) {
j = 0;
while (T[s + j] == P[j]) {
j++;
// 匹配成功
if (j >= m) {
return s;
}
}
// 找到主串中当前跟模式串匹配的最末字符的下一个字符
// 在模式串中出现最后的位置
// 所需要从(模式串末尾+1)移动到该位置的步数
s += shift[T[s + m]];
}
return -1;
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-01-09 15:11  MFC记事本文本编辑器实现
     目录           0  2019-01-09 15:11  MFC记事本文本编辑器实现TextEditor
     目录           0  2019-01-09 15:11  MFC记事本文本编辑器实现TextEditor.vs
     目录           0  2019-01-09 15:11  MFC记事本文本编辑器实现TextEditor.vsTextEditor
     目录           0  2019-01-09 15:11  MFC记事本文本编辑器实现TextEditor.vsTextEditorv15
     文件       38400  2019-01-09 15:08  MFC记事本文本编辑器实现TextEditor.vsTextEditorv15.suo
     文件    77987840  2019-01-09 15:08  MFC记事本文本编辑器实现TextEditor.vsTextEditorv15Browse.VC.db
     目录           0  2019-01-09 15:11  MFC记事本文本编辑器实现TextEditor.vsTextEditorv15ipch
     文件   121307136  2018-12-02 17:32  MFC记事本文本编辑器实现TextEditor.vsTextEditorv15ipch7e52fd93b0879f32.ipch
     目录           0  2019-01-09 15:12  MFC记事本文本编辑器实现TextEditor.vsTextEditorv15ipchAutoPCH
     文件   121307136  2019-01-09 13:06  MFC记事本文本编辑器实现TextEditor.vsTextEditorv15ipchee1c4f9eb8485ff3.ipch
     目录           0  2019-01-09 15:11  MFC记事本文本编辑器实现TextEditorDebug
     文件      275968  2019-01-09 15:08  MFC记事本文本编辑器实现TextEditorDebugTextEditor.exe
     文件     2080888  2019-01-09 15:08  MFC记事本文本编辑器实现TextEditorDebugTextEditor.ilk
     文件     2756608  2019-01-09 15:08  MFC记事本文本编辑器实现TextEditorDebugTextEditor.pdb
     目录           0  2019-01-09 15:11  MFC记事本文本编辑器实现TextEditorTextEditor
     目录           0  2019-01-09 15:11  MFC记事本文本编辑器实现TextEditorTextEditor.vs
     目录           0  2019-01-09 15:11  MFC记事本文本编辑器实现TextEditorTextEditor.vsTextEditor
     目录           0  2019-01-09 15:11  MFC记事本文本编辑器实现TextEditorTextEditor.vsTextEditorv15
     文件       13824  2018-12-27 00:08  MFC记事本文本编辑器实现TextEditorTextEditor.vsTextEditorv15.suo
     文件          78  2018-12-27 00:08  MFC记事本文本编辑器实现TextEditorTextEditor.vsVSWorkspaceState.json
     文件       77824  2018-12-27 00:08  MFC记事本文本编辑器实现TextEditorTextEditor.vsslnx.sqlite
     文件        2750  2019-01-05 18:14  MFC记事本文本编辑器实现TextEditorTextEditorCDoalogReplace.cpp
     文件        1128  2019-01-05 18:14  MFC记事本文本编辑器实现TextEditorTextEditorCDoalogReplace.h
     文件        4184  2019-01-07 23:51  MFC记事本文本编辑器实现TextEditorTextEditorCdialogFind.cpp
     文件        1142  2019-01-02 01:12  MFC记事本文本编辑器实现TextEditorTextEditorCdialogFind.h
     目录           0  2019-01-09 15:11  MFC记事本文本编辑器实现TextEditorTextEditorDebug
     文件       44145  2019-01-09 15:08  MFC记事本文本编辑器实现TextEditorTextEditorDebugCDoalogReplace.obj
     文件       44544  2019-01-09 15:08  MFC记事本文本编辑器实现TextEditorTextEditorDebugCdialogFind.obj
     文件       26317  2019-01-05 18:04  MFC记事本文本编辑器实现TextEditorTextEditorDebugData.obj
     文件       68166  2019-01-09 15:08  MFC记事本文本编辑器实现TextEditorTextEditorDebugMainFrm.obj
............此处省略46个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)