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

CDC:DrawText怎么让文字分行

2013-02-24 
CDC::DrawText如何让文字分行void CdemoDlg::OnPaint() {CPaintDC dc(this)const wchar_t* text L\aaa

CDC::DrawText如何让文字分行


void CdemoDlg::OnPaint() {
CPaintDC dc(this);

const wchar_t* text = L"\
aaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbccccccccccccccccc\n\
111111111111111112222222222222222233333333333333333\n\
=================#################+++++++++++++++++====";

RECT rect = {0, 0, 100, 100};

dc.SetBkMode(TRANSPARENT);
dc.SetTextColor(RGB(255, 0, 0));
dc.DrawText(text, &rect, DT_CALCRECT | DT_WORDBREAK);
dc.DrawText(text, &rect, DT_WORDBREAK);
}


以上代码我要的绘制的效果是:
aaaaaaaaaaaaaaaaabbbb
bbbbbbbbbbbbbcccccccc
ccccccccc
111111111111111112222
222222222222233333333
333333333
=================####
#############++++++++
+++++++++====

但它出来的却是这样
aaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbccccccccccccccccc
111111111111111112222222222222222233333333333333333
=================#################+++++++++++++++++====


[解决办法]
另外 一个指针指向字符串
字符串不能够更改
lz要做聊天信息

还是使用从string把!
[解决办法]
要换行的位置加\n
[解决办法]
显示固定行宽
计算rect和显示的时候加上DT_EDITCONTROL
[解决办法]
定义初始的rect,做一个循环,当遇到后一个字符和前一个不一样时就让rect的纵坐标往下移就实现自动换行了
[解决办法]
需要+   \r\n

热点排行