📄 myedit.cpp
字号:
// MyEdit.cpp : implementation file
//
#include "stdafx.h"
#include "g.h"
//#include "MyEdit.h"
#include "mybar.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMyEdit
CMyEdit::CMyEdit()
{
m_crOld.cpMax = m_crOld.cpMin = -1;
}
CMyEdit::~CMyEdit()
{
}
BEGIN_MESSAGE_MAP(CMyEdit, CRichEditCtrl)
//{{AFX_MSG_MAP(CMyEdit)
ON_WM_LBUTTONDBLCLK()
//}}AFX_MSG_MAP
ON_WM_CREATE()
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMyEdit message handlers
int CMyEdit::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CRichEditCtrl::OnCreate(lpCreateStruct) == -1)
return -1;
SetBackgroundColor(0,RGB(220,220,180));
ModifyStyleEx(0, WS_EX_CLIENTEDGE);
return 0;
}
void CMyEdit::FindPlace(LPCTSTR s)
{
if(m_crOld.cpMax!=-1)
{
SetSel(m_crOld);
m_cf.crTextColor=RGB(0,200,200);
SetWordCharFormat(m_cf);
}
FINDTEXTEX ft;
ft.chrg.cpMin = 0;
ft.chrg.cpMax = GetTextLength()-1;
ft.lpstrText = (LPSTR)s;
long n=FindText(0,&ft);
if(-1!=n)
{
FINDTEXTEX ft0;
ft0=ft;
ft.chrg.cpMin=ft.chrgText.cpMax;
if(-1==FindText(0,&ft))
{
SetSel(m_crOld);
m_cf.crTextColor=RGB(0,0,200);
SetWordCharFormat(m_cf);
SetSel(ft0.chrgText);
m_cf.crTextColor=RGB(255,0,0);
SetWordCharFormat(m_cf);
m_crOld=ft0.chrgText;
SetSel(m_crOld.cpMax,m_crOld.cpMax);
}
}
}
CString CMyEdit::Update(CString &str)
{
int n,m;
CString sRet;
if((n=str.Find(m_start))!=-1)
{
m=str.Find(m_end,n+m_start.GetLength());
if(m==-1)
m=str.GetLength();
else
sRet=str.Mid(0,n)+str.Mid(m+m_end.GetLength());
n=str.Find("\r\n",n);
if(n==-1)
n=0;
str=str.Mid(n,m-n);
SetWindowText(str);
str.Empty();
}
return sRet;
}
void CMyEdit::UpdateLine(CString str)
{
CString s = str.SpanExcluding("\r\n") + "\r\n";
int n = str.Find(m_start);
if (n == -1)
n = str.Find(m_end);
if (n != -1)
{
str = str.Mid(n);
SetWindowText(s + str.SpanExcluding("\r\n"));
}
}
void CMyEdit::SetTextFmt(int size, COLORREF color)
{
// TODO: 在此添加您专用的创建代码
CString strDefFont;
strDefFont="宋体";
m_cf.cbSize = sizeof(CHARFORMAT);
m_cf.dwMask = CFM_BOLD|CFM_SIZE|CFM_COLOR|CFM_OFFSET|CFM_FACE|CFM_CHARSET;
m_cf.dwEffects =0;
m_cf.yHeight = size;
m_cf.crTextColor = color;
m_cf.yOffset = 0;
m_cf.bCharSet = GB2312_CHARSET;
m_cf.bPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;
ASSERT(strDefFont.GetLength() < LF_FACESIZE);
lstrcpynA(m_cf.szFaceName, ((LPTSTR) (LPCTSTR) strDefFont), LF_FACESIZE);
SetDefaultCharFormat(m_cf);
}
void CMyEdit::OnLButtonDblClk(UINT nFlags, CPoint point)
{
CRichEditCtrl::OnLButtonDblClk(nFlags, point);
long a, b;
CString s;
GetWindowText(s);
GetSel(a, b);
((CMyBar*)GetParent())->SendCmd(s.Mid(a, b-a));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -