键盘按键的处理和单字节的判断,不允许输入汉字

BOOL CWndWtrite::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_KEYDOWN) //判断是否有按键按下
{
switch(pMsg->wParam)
{
case VK_DOWN: //表示是方向键中的向下的键
{
int i=m_pProgData->GetCurRow();
i++;
if(i >= m_pProgData->GetRowCnt() )
m_pProgData->SetCurRow(0);
else
m_pProgData->SetCurRow(i);
Invalidate();
break;
}
case VK_UP: //表示是方向键中的向上的键
{
int i=m_pProgData->GetCurRow();
i--;
if (i < 0)
m_pProgData->SetCurRow(m_pProgData->GetRowCnt()-1);
else
m_pProgData->SetCurRow(i);
Invalidate();
break;
}
case VK_RIGHT:
{
if((m_pProgData->GetCurRow())*(m_pProgData->GetColCnt())+m_pProgData->GetCurCol() >= (m_pProgData->GetColCnt())*(m_pProgData->GetRowCnt())-1)
{
m_pProgData->SetCurRow(0);
m_pProgData->SetCurCol(0);
}
else
{
int i=m_pProgData->GetCurCol();
i++;
if(i >=m_pProgData->GetColCnt())
{
m_pProgData->SetCurCol(0);
int j=m_pProgData->GetCurRow();
j++;
if (j >=m_pProgData->GetRowCnt())
m_pProgData->SetCurRow(0);
else
m_pProgData->SetCurRow(j);
}

else
m_pProgData->SetCurCol(i);
}
Invalidate();
break;
}
case VK_LEFT:
{
int i=m_pProgData->GetCurCol();
i--;
if (i<0)
{
m_pProgData->SetCurCol(m_pProgData->GetColCnt()-1);
int j=m_pProgData->GetCurRow();
j--;

if (j <0)
{
m_pProgData->SetCurRow(m_pProgData->GetRowCnt()-1);
}
else m_pProgData->SetCurRow(j);
}
else
m_pProgData->SetCurCol(i);
Invalidate();
break;
}
case VK_RETURN:
{
m_pProgData->SetCurCol(0);
m_pProgData->SetCurRow( (m_pProgData->GetCurRow()+1) % m_pProgData->GetRowCnt() );
Invalidate();
break;
}
case VK_DELETE:
{
m_pProgData->SetWordItems( m_pProgData->GetCurFrame(), m_pProgData->GetCurRow(), m_pProgData->GetCurCol(), ' ' );
((CInfoStationDlg *)GetParent())->UpdateCurFrameWord();
Invalidate();
}
default:
break;
}
}
else if(pMsg->message == WM_CHAR)
{
if ( pMsg->wParam == VK_BACK )
{
m_pProgData->BackDown();
}
else
{
unsigned char chWord = pMsg->wParam;
if(chWord < 0x80)//只需要输入单字节的字符
{
m_pProgData->CharDown( chWord );
}
}

((CInfoStationDlg *)GetParent())->UpdateCurFrameWord();
Invalidate();
}
SetFocus();

return CWnd::PreTranslateMessage(pMsg);
}

原文地址:https://www.cnblogs.com/chenzuoyou/p/3106495.html