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

📄 myedit.cpp

📁 CMUD源码 用来玩MUD游戏的 没开发完
💻 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 + -