void CMy123View::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default CClientDC dc(this);
if(nChar == 0x0d)
cs_txt = '\n';
else
cs_txt += nChar;
dc.TextOut(0,0,cs_txt);
CView::OnChar(nChar, nRepCnt, nFlags);
}
为什么当输入回车之后并不是换行输出 而是在原行 从头输出 就好像输入回车之后 字符串清空了
一样
{
// TODO: Add your message handler code here and/or call default CClientDC dc(this);
if(nChar == 0x0d)
cs_txt = '\n';
else
cs_txt += nChar;
dc.TextOut(0,0,cs_txt);
CView::OnChar(nChar, nRepCnt, nFlags);
}
为什么当输入回车之后并不是换行输出 而是在原行 从头输出 就好像输入回车之后 字符串清空了
一样
只能用drawtext()
我用的上面这个模式 只能输出两行 如果按第3个回车 那么还是从第二行输出
也就是说 无论多少个回车 最终只能在第2行输出了 究竟该用那个模式?
GetClientRect(cr);
获取客户区啊
UINT unAlign = DT_CENTER|DT_WORDBREAK|DT_EDITCONTROL;
DrawText(m_hGDIMemDC, objDraw.strText, len, &rect, unAlign);
GetTextExtentPoint(m_hGDIMemDC, objDraw.strText, len, &sizeWidth);
if (sizeWidth.cx > objDraw.CurPicText.rectText.Width())
unAlign = DT_LEFT|DT_WORDBREAK|DT_EDITCONTROL;if(objDraw.strText.Find(L"\n") != -1) //字串中有空格则换行
unAlign = DT_CENTER|DT_WORDBREAK|DT_EDITCONTROL;