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

📄 rcveditctrl.cpp

📁 PSK31方式通信C++编写的原代码,可以通过声音传递数据.
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		if(TXStart)
		{
			m_TXActive = TRUE;
			Preamb = _T("\n<<TX Started");
			SetSelectionCharFormat(m_SentFormat);
			m_LastFont = TX_ID;
		}
		else
		{
			Preamb = _T("\n<<TX Ended ");
			SetSelectionCharFormat(m_SentFormat);
			m_TXActive = FALSE;
		}
		str += _T("\n");
	}
	else
	{
		if(TXStart)
		{
			m_TXActive = TRUE;
			Preamb = _T("\n<<TX Started");
			SetSelectionCharFormat(m_SentFormat);
			m_LastFont = TX_ID;
		}
		else
		{
			Preamb = _T("<<TX Ended");
			m_TXActive = FALSE;
			str += _T("\n");
		}

	}
	str = Preamb + str;
	SetSel(TotalLength,TotalLength);
	ReplaceSel( str );
	if( (cnt = GetLineCount() ) != m_LineCount)
	{
		LineScroll(cnt-m_LineCount,0);
		m_LineCount = cnt;
	}

}
/////////////////////////////////////////////////////////////////////////////
//*******************   CTheirCallCtrl   Class   ****************************
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// CTheirCallCtrl

CTheirCallCtrl::CTheirCallCtrl()
{
	m_OldLength = 0;
}

CTheirCallCtrl::~CTheirCallCtrl()
{
}


BEGIN_MESSAGE_MAP(CTheirCallCtrl, CRichEditCtrl)
	//{{AFX_MSG_MAP(CTheirCallCtrl)
	ON_WM_CREATE()
	ON_CONTROL_REFLECT(EN_UPDATE, OnUpdate)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTheirCallCtrl message handlers
int CTheirCallCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CRichEditCtrl::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	SetEventMask( ENM_UPDATE);		//enable notify of changes
//
	GetDefaultCharFormat(m_CharFormat);
	m_CharFormat.cbSize=sizeof(CHARFORMAT);
	m_CharFormat.dwMask = CFM_BOLD|CFM_OFFSET|CFM_CHARSET|CFM_COLOR|CFM_FACE|CFM_SIZE;
	m_CharFormat.crTextColor = RGB(0,0,255);
	m_CharFormat.yHeight = 7*20;		//8 pt font
	m_CharFormat.yOffset = 40;			//no idea why this has to be 40
	m_CharFormat.bCharSet = 0;			//otherwise font is not centered
	m_CharFormat.dwEffects = 0;
	m_CharFormat.bPitchAndFamily = FF_SWISS | VARIABLE_PITCH;
	strcpy( m_CharFormat.szFaceName, "Arial" );

	SetSelectionCharFormat(m_CharFormat);
	SetDefaultCharFormat(m_CharFormat);
//
	LimitText(50);
	return 0;
}

///////////////////////////////////////////////////////////////////////////////
//  Called to make text upper case and replace existing text
///////////////////////////////////////////////////////////////////////////////
void CTheirCallCtrl::ReFormat()
{
INT TotalLength = GetWindowTextLength();
CString str;
INT start;
CHARRANGE cr;
	if(GetFocus() != this )	// if is a drag-drop event
	{
		GetSel(cr);
		start = cr.cpMax - TotalLength + m_OldLength;
		SetSel( start, cr.cpMax);
		str = GetSelText();
	}
	else					//is typed or clipboard operation
	{
		SetSel(0,TotalLength);
		str = GetSelText();
	}
	str.MakeUpper();
	SetSel(0,TotalLength);
	ReplaceSel(str,FALSE);
	SetSelectionCharFormat(m_CharFormat);
	SetDefaultCharFormat(m_CharFormat);
	TotalLength = GetWindowTextLength();
	if(TotalLength>10)		//limit ext to 10 chars
	{
		SetSel(10 ,TotalLength);
		str = "";
		ReplaceSel(str,FALSE);
		TotalLength = 10;
	}
	SetSel(TotalLength ,TotalLength);
	m_OldLength = TotalLength;
	CWinPSKDoc* pDoc = (CWinPSKDoc*)((CWinPSKView*)GetParent() )->GetDocument();
	pDoc->m_sTheirCall = str;
}

void CTheirCallCtrl::InsertCString(CString Cstr)
{
	SetFocus();
	SetSel(0,-1);
	ReplaceSel( Cstr);
}

void CTheirCallCtrl::ClearAll()
{
BYTE temp[2]={0,0};
	SetFocus();
	SetSel(0,-1);
	ReplaceSel( (CHAR*)temp );
}
///////////////////////////////////////////////////////////////////////////////
//  Service OnUpdate message
///////////////////////////////////////////////////////////////////////////////
void CTheirCallCtrl::OnUpdate() 
{
	if( GetModify() )
	{
		ReFormat();
	}
	SetModify(FALSE);
}

///////////////////////////////////////////////////////////////////////////////
//  Service clipboard paste operation
///////////////////////////////////////////////////////////////////////////////
void CTheirCallCtrl::PasteClip()
{
INT TotalLength = GetWindowTextLength();
	SetSel(0,TotalLength);
	Clear();
	Paste();
}

/////////////////////////////////////////////////////////////////////////////
//*******************   CTheirNameCtrl   Class   ****************************
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// CTheirNameCtrl

CTheirNameCtrl::CTheirNameCtrl()
{
	m_OldLength = 0;
}

CTheirNameCtrl::~CTheirNameCtrl()
{
}


BEGIN_MESSAGE_MAP(CTheirNameCtrl, CRichEditCtrl)
	//{{AFX_MSG_MAP(CTheirNameCtrl)
	ON_WM_CREATE()
	ON_CONTROL_REFLECT(EN_UPDATE, OnUpdate)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTheirNameCtrl message handlers
int CTheirNameCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CRichEditCtrl::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	SetEventMask( ENM_UPDATE);		//enable notify of changes
//
	GetDefaultCharFormat(m_CharFormat);
	m_CharFormat.cbSize=sizeof(CHARFORMAT);
	m_CharFormat.dwMask = CFM_BOLD|CFM_OFFSET|CFM_CHARSET|CFM_COLOR|CFM_FACE|CFM_SIZE;
	m_CharFormat.crTextColor = RGB(0,0,255);
	m_CharFormat.yHeight = 7*20;		//7 pt font
	m_CharFormat.yOffset = 40;			//no idea why this has to be 40
	m_CharFormat.bCharSet = 0;			//otherwise font is not centered
	m_CharFormat.dwEffects = 0;
	m_CharFormat.bPitchAndFamily = FF_SWISS | VARIABLE_PITCH;
	strcpy( m_CharFormat.szFaceName, "Arial" );

	SetSelectionCharFormat(m_CharFormat);
	SetDefaultCharFormat(m_CharFormat);
//
	LimitText(50);
	return 0;
}

///////////////////////////////////////////////////////////////////////////////
//  Called to make first letter upper case and replace existing text
///////////////////////////////////////////////////////////////////////////////
void CTheirNameCtrl::ReFormat()
{
INT TotalLength = GetWindowTextLength();
CString str;
CString strtemp;
TCHAR ctemp;
INT start;
CHARRANGE cr;
	if(GetFocus() != this )	// if is a drag-drop event
	{
		GetSel(cr);
		start = cr.cpMax - TotalLength + m_OldLength;
		SetSel( start, cr.cpMax);
		str = GetSelText();
	}
	else					//is typed or clipboard operation
	{
		SetSel(0,TotalLength);
		str = GetSelText();
	}
	if( !str.IsEmpty() )
	{
		str.MakeLower();
		strtemp = str.Left(1);	//get first character
		strtemp.MakeUpper();	//convert to Upper case
		ctemp = strtemp.GetAt(0);
		str.SetAt(0,ctemp);
	}

	SetSel(0,TotalLength);
	ReplaceSel(str,FALSE);
	SetSelectionCharFormat(m_CharFormat);
	SetDefaultCharFormat(m_CharFormat);
	TotalLength = GetWindowTextLength();
	if(TotalLength>18)		//limit ext to 18 chars
	{
		SetSel(18 ,TotalLength);
		str = "";
		ReplaceSel(str,FALSE);
		TotalLength = 18;
	}
	SetSel(TotalLength ,TotalLength);
	m_OldLength = TotalLength;
	CWinPSKDoc* pDoc = (CWinPSKDoc*)((CWinPSKView*)GetParent() )->GetDocument();
	pDoc->m_sTheirName = str;
}


void CTheirNameCtrl::InsertCString(CString Cstr)
{
	SetFocus();
	SetSel(0,-1);
	ReplaceSel( Cstr);
}

///////////////////////////////////////////////////////////////////////////////
//  Service OnUpdate message
///////////////////////////////////////////////////////////////////////////////
void CTheirNameCtrl::OnUpdate() 
{
	if( GetModify() )
	{
		ReFormat();
	}
	SetModify(FALSE);
}

void CTheirNameCtrl::ClearAll()
{
BYTE temp[2]={0,0};
	SetFocus();
	SetSel(0,-1);
	ReplaceSel( (CHAR*)temp );
}

///////////////////////////////////////////////////////////////////////////////
//  Service clipboard paste operation
///////////////////////////////////////////////////////////////////////////////
void CTheirNameCtrl::PasteClip()
{
INT TotalLength = GetWindowTextLength();
	SetSel(0,TotalLength);
	Clear();
	Paste();
}

/////////////////////////////////////////////////////////////////////////////
//*******************   CTextGrabCtrl   Class   ****************************
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// CTextGrabCtrl

CTextGrabCtrl::CTextGrabCtrl()
{
	m_OldLength = 0;
}

CTextGrabCtrl::~CTextGrabCtrl()
{
}


BEGIN_MESSAGE_MAP(CTextGrabCtrl, CRichEditCtrl)
	//{{AFX_MSG_MAP(CTextGrabCtrl)
	ON_WM_CREATE()
	ON_CONTROL_REFLECT(EN_UPDATE, OnUpdate)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTextGrabCtrl message handlers
int CTextGrabCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CRichEditCtrl::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	SetEventMask( ENM_UPDATE);		//enable notify of changes
//
	GetDefaultCharFormat(m_CharFormat);
	m_CharFormat.cbSize=sizeof(CHARFORMAT);
	m_CharFormat.dwMask = CFM_BOLD|CFM_OFFSET|CFM_CHARSET|CFM_COLOR|CFM_FACE|CFM_SIZE;
	m_CharFormat.crTextColor = RGB(0,0,255);
	m_CharFormat.yHeight = 7*20;		//7 pt font
	m_CharFormat.yOffset = 40;			//no idea why this has to be 40
	m_CharFormat.bCharSet = 0;			//otherwise font is not centered
	m_CharFormat.dwEffects = 0;
	m_CharFormat.bPitchAndFamily = FF_SWISS | VARIABLE_PITCH;
	strcpy( m_CharFormat.szFaceName, "Arial" );

	SetSelectionCharFormat(m_CharFormat);
	SetDefaultCharFormat(m_CharFormat);
//
	LimitText(50);
	return 0;
}

///////////////////////////////////////////////////////////////////////////////
//  Called to make first letter upper case and replace existing text
///////////////////////////////////////////////////////////////////////////////
void CTextGrabCtrl::ReFormat()
{
INT TotalLength = GetWindowTextLength();
CString str;
CString strtemp;
TCHAR ctemp;
INT start;
CHARRANGE cr;
	if(GetFocus() != this )	// if is a drag-drop event
	{
		GetSel(cr);
		start = cr.cpMax - TotalLength + m_OldLength;
		SetSel( start, cr.cpMax);
		str = GetSelText();
	}
	else					//is typed or clipboard operation
	{
		SetSel(0,TotalLength);
		str = GetSelText();
	}
	if( !str.IsEmpty() )
	{
		strtemp = str.Left(1);	//get first character
		strtemp.MakeUpper();	//convert to Upper case
		ctemp = strtemp.GetAt(0);
		str.SetAt(0,ctemp);
	}

	SetSel(0,TotalLength);
	ReplaceSel(str,FALSE);
	SetSelectionCharFormat(m_CharFormat);
	SetDefaultCharFormat(m_CharFormat);
	TotalLength = GetWindowTextLength();
	if(TotalLength>45)		//limit ext to 45 chars
	{
		SetSel(45 ,TotalLength);
		str = "";
		ReplaceSel(str,FALSE);
		TotalLength = 45;
	}
	SetSel(TotalLength ,TotalLength);
	m_OldLength = TotalLength;
	CWinPSKDoc* pDoc = (CWinPSKDoc*)((CWinPSKView*)GetParent() )->GetDocument();
	pDoc->m_sTextGrab = str;
}

void CTextGrabCtrl::InsertCString(CString Cstr)
{
	SetFocus();
	SetSel(0,-1);
	ReplaceSel( Cstr);
}

void CTextGrabCtrl::ClearAll()
{
BYTE temp[2]={0,0};
	SetFocus();
	SetSel(0,-1);
	ReplaceSel( (CHAR*)temp );
}

///////////////////////////////////////////////////////////////////////////////
//  Service OnUpdate message
///////////////////////////////////////////////////////////////////////////////
void CTextGrabCtrl::OnUpdate() 
{
	if( GetModify() )
	{
		ReFormat();
	}
	SetModify(FALSE);
}

///////////////////////////////////////////////////////////////////////////////
//  Service clipboard paste operation
///////////////////////////////////////////////////////////////////////////////
void CTextGrabCtrl::PasteClip()
{
INT TotalLength = GetWindowTextLength();
	SetSel(0,TotalLength);
	Clear();
	Paste();
}



⌨️ 快捷键说明

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