Пример #1
0
void CBCGPMaskEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	const BOOL bIsReadOnly = ((GetStyle() & ES_READONLY) == ES_READONLY);
	if (bIsReadOnly)
	{
		CBCGPEdit::OnChar(nChar, nRepCnt, nFlags);
		return;
	}

	TCHAR chChar = (TCHAR) nChar;
	if (_istprint(chChar) && !(::GetKeyState(VK_CONTROL)&0x80))
	{
		OnCharPrintchar(nChar, nRepCnt, nFlags);	
		return;
	}
	else if ((nChar == VK_DELETE || nChar == VK_BACK) && (!m_strMask.IsEmpty()))
	{
		return;
	}

	int nBeginOld, nEndOld;
	CBCGPEdit::GetSel(nBeginOld, nEndOld);

	CBCGPEdit::OnChar(nChar, nRepCnt, nFlags);

	DoUpdate (TRUE, nBeginOld, nEndOld);
} 
Пример #2
0
void CBCGMaskEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	if (_istprint((BCG_TCHAR) nChar) && !(::GetKeyState(VK_CONTROL)&0x80))
	{
		OnCharPrintchar(nChar, nRepCnt, nFlags);	
		return;
	}
	else if ((nChar == VK_DELETE || nChar == VK_BACK) && (!m_strMask.IsEmpty()))
	{
		return;
	}

	CEdit::OnChar(nChar, nRepCnt, nFlags);
}