MFC文本编程,菜鸟篇,输入字符响应并显示在视类窗口中

来源:互联网 发布:上古卷轴5字体优化 编辑:程序博客网 时间:2024/06/05 22:37

以下代码都定义在视类的字符响应函数中

CClientDC dc(this);


//设置字体
CFont font;
font.CreatePointFont(300,_T("华文行楷"),NULL);
CFont *pOldFont=dc.SelectObject(&font);
TEXTMETRIC tm;
dc.GetTextMetrics(&tm);
CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight);
ShowCaret();
//enter键换行操作
if (0x0d==nChar)
{
m_strLine.Empty();
m_ptOrigin.y+=tm.tmHeight;
}
//backspase键删除操作
else if (0x08==nChar)
{
COLORREF clr=dc.SetTextColor(dc.GetBkColor());
dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine);
m_strLine=m_strLine.Left(m_strLine.GetLength()-1);
dc.SetTextColor(clr);
}
else

{

//注意:nChar是int型变量,需转换成char型才能实现STring+=和STring+操作

m_strLine+=char(nChar);
}


//改变光标的位置
CSize sz=dc.GetTextExtent(m_strLine);
CPoint pt;
pt.x=m_ptOrigin.x+sz.cx;
pt.y=m_ptOrigin.y;
SetCaretPos(pt);
dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine);

dc.SelectObject(pOldFont);