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

📄 cmdshelledit.cpp

📁 软件源代码,共享。有2个文件
💻 CPP
字号:
// CmdShellEdit.cpp : 实现文件
//

#include "stdafx.h"
#include "VipClient.h"
#include "CmdShellEdit.h"
#include ".\cmdshelledit.h"



// CCmdShellEdit

IMPLEMENT_DYNAMIC(CCmdShellEdit, CEdit)
CCmdShellEdit::CCmdShellEdit()
{
	m_TextdwLen = 0;
	m_hServer = NULL;
}

CCmdShellEdit::~CCmdShellEdit()
{
}


BEGIN_MESSAGE_MAP(CCmdShellEdit, CEdit)
	ON_WM_ERASEBKGND()
	ON_WM_GETDLGCODE()
	ON_WM_CHAR()
	ON_WM_VSCROLL()
	ON_WM_MOUSEWHEEL()
END_MESSAGE_MAP()



// CCmdShellEdit 消息处理程序


BOOL CCmdShellEdit::OnEraseBkgnd(CDC* pDC)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	//得到Edit控件的外框,即背景区域
	 CEdit::OnEraseBkgnd(pDC);
	RECT updatarect; 
	GetClientRect(&updatarect);
	//画背景,我画的是一个黄色的矩形
	CBrush newBrush;
	newBrush.CreateSolidBrush(RGB(0,0,0));
	CBrush * oldBrush = pDC->SelectObject(&newBrush);
	pDC->Rectangle(&updatarect);
	pDC->SelectObject(oldBrush);
	return TRUE;
	
}

UINT CCmdShellEdit::OnGetDlgCode()
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	RedrawWindow(NULL, NULL,RDW_INVALIDATE | RDW_ERASE ); 
	return CEdit::OnGetDlgCode();
}

void CCmdShellEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	int nStartChar;
	int nEndChar ;
	GetSel(nStartChar, nEndChar);
	int nTextLen = GetWindowTextLength();

	if(nChar == 8)
	{
		if(nStartChar <= m_TextdwLen - 1 )
			nStartChar = m_TextdwLen - 1;
		if(nEndChar <= m_TextdwLen - 1 )
			nEndChar = m_TextdwLen - 1;
		SetSel(nStartChar, nEndChar);
	//	if(m_TextdwLen == nTextLen)
		if(nEndChar < m_TextdwLen )
			return ;
	//	nEndChar--;
///		
	}
	if(nEndChar < m_TextdwLen - 1)
		return ;
	if(nStartChar < m_TextdwLen - 1)
		return ;
	if(nChar == 13)
	{
		SetSel(nTextLen, -1);

		CEdit::OnChar(nChar, nRepCnt, nFlags);
		CString strText; GetWindowText(strText);
		CString strCmd = strText.Mid(m_TextdwLen - 1);
		if(m_hServer != NULL)
			m_hServer->SendCmd(strCmd);
		return ;
	}

	CEdit::OnChar(nChar, nRepCnt, nFlags);
}
void CCmdShellEdit::AddText(LPCWSTR szText)
{
	int nLen = GetWindowTextLength();
	CString str ;
	this->GetWindowText(str);
	str += szText;
	SetWindowText(str);
	LineScroll(GetLineCount());
	SetFocus();
	SetSel(str.GetLength(), -1);
	m_TextdwLen = str.GetLength() + 1;
}
void CCmdShellEdit::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值

	RedrawWindow(NULL, NULL,RDW_INVALIDATE | RDW_ERASE ); 
	CEdit::OnVScroll(nSBCode, nPos, pScrollBar);
}


BOOL CCmdShellEdit::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	RedrawWindow(NULL, NULL,RDW_INVALIDATE | RDW_ERASE ); 
	return CEdit::OnMouseWheel(nFlags, zDelta, pt);
}

⌨️ 快捷键说明

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