📄 rcveditctrl.cpp
字号:
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 + -