求助!帮忙看看!

a6523771 2014-03-22 08:28:38
我写的是MFC的消息函数,我想实现的是像记事本那样。在任意处输入字符串,还有退格和换行的功能。但是不能输入字符。为什么呢?帮忙看看,谢谢~
int CMFCTEXTView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;

//创建文本插入符
CClientDC dc(this);
TEXTMETRIC tm;
dc.GetTextMetrics(&tm);
CreateSolidCaret(tm.tmAveCharWidth/8, tm.tmHeight); /
ShowCaret();
return 0;
}

void CMFCTEXTView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值

CClientDC dc(this);
TEXTMETRIC tm;
dc.GetTextMetrics (&tm);
if (0x0d == nChar)
{
m_strLine.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_strLine);
m_strLine = m_strLine.Left(m_strLine.GetLength() - 1);
dc.SetTextColor (clr);
}
dc.TextOut (m_ptOrigin.x, m_ptOrigin.y, m_strLine);

CView::OnChar(nChar, nRepCnt, nFlags);
}
void CMFCTEXTView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值

SetCaretPos (point);
m_strLine.Empty();
m_ptOrigin = point;

CView::OnLButtonDown(nFlags, point);
}
...全文
33 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧