MFC文本編程,菜鳥篇,輸入字符響應並顯示在視類窗口中

以下代碼都定義在視類的字符響應函數中

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);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章