首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

MFC中退格键消息响应有关问题

2012-03-07 
MFC中退格键消息响应问题`怎么在一个文档的客户区中实现退格操作,就是像我们平时一样,往后删除一个字符`昨

MFC中退格键消息响应问题`
怎么在一个文档的客户区中实现退格操作,就是像我们平时一样,往后删除一个字符`
昨天下午弄了好久,没出来```弄不懂```大家帮帮忙吧`退格在客户区中怎么显示 "| "呢?奇怪了```

[解决办法]
void CMy05Text_SDIView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
CClientDC dc(this);
CFont font;
font.CreatePointFont(300,_T( "华文行楷 "),NULL);
CFont *pOldFont = dc.SelectObject(&font);
TEXTMETRIC tm;
dc.GetTextMetrics(&tm);
if (0x0d==nChar)
{
m_str.Empty();
m_ptOrigin.y+=tm.tmHeight;
}

else if (0x08==nChar)
{
COLORREF clr = dc.SetTextColor(dc.GetBkColor());
dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_str);
dc.SetTextColor(clr);
m_str = m_str.Left(m_str.GetLength()-1);
dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_str);
}
else
{
//CString s = m_str;
m_str.Format(_T( "%s%c "),(LPCTSTR)m_str,nChar);
}
//m_str.Format(_T( "%s%c "),m_str,nChar);
CSize sz = dc.GetTextExtent(m_str);
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_str);
dc.SelectObject(pOldFont);
CView::OnChar(nChar, nRepCnt, nFlags);
TRACE(m_str+_T( "\n "));
}

热点排行