程序要求用一个文本输入框,但不管半角全角字符都要对齐的,就像一个表那样整齐,
本来想重载CEDIT的,却不知道怎么操作,就自己写了个。
我主要处理onchar,和按规定自己设置插入符位转正置,这个自编的文本输入框基本符合要求了,但是不能输入中文,即使是打开输入法,也不起作用,仍然是一个字母的输入。
部分源码如下:
switch(nChar)
{
case VK_BACK:
if(m_nTextPos!=0)
{
m_strInputText = m_strInputText.Left(m_nTextPos-1);
m_nTextPos--;
}
break;
default:
if((nChar>=0)&&(nChar<=31))
return;
if(m_nTextPos == m_strInputText.GetLength())
{
m_strInputText+=(TCHAR)nChar;
m_nTextPos++;
}
else
m_strInputText.SetAt(m_nTextPos++,nChar);
         break;
}
m_ptCaretPos.x=TextRect[m_nTextPos].left;
m_ptCaretPos.y=TextRect[m_nTextPos].top;
HideCaret();
CClientDC dc(this);
DrawInpuText(&dc,m_nTextPos);
SetCaretPos(m_ptCaretPos);
ShowCaret();