用TextOut 做中文输出!!!!!!!

aaaa3105563 2009-03-21 11:11:02
古诗 床前明月光,
疑是地上霜,
举头望明月,
低头思故乡。
请问如何写才能输出
低举疑床
头头是前
思望地明
故明上月
乡月霜光
...全文
235 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
aaaa3105563 2009-03-22
  • 打赏
  • 举报
回复
要是非要用textout 做输出 可以做吗
hxzmm 2009-03-22
  • 打赏
  • 举报
回复
LOGFONT中lfEscapement可以指定角度,你用-900或900来创建个字体就可以了!
aaaa3105563 2009-03-22
  • 打赏
  • 举报
回复
定义是顺着定义的啦 这样定义古诗我也会啊
lizhigang34 2009-03-22
  • 打赏
  • 举报
回复
一个汉字一个汉字的输出,效率上可能不行,不知还有谁有更好的算法.
lizhigang34 2009-03-22
  • 打赏
  • 举报
回复

void CView1View::OnDraw(CDC* pDC)
{
CView1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here

TCHAR* szText[4] = {
"床前明月光",
"疑是地上霜",
"举头望明月",
"低头思故乡",
};
int x = 20, y = 20;
int gap = 20; //文字间的间隔
for (int i = 3; i >= 0; i--)
{
y = 20;
TCHAR* p = szText[i];
while (*p)
{
TCHAR tmp[2]; //汉字占两个字节,没记错的话^_^
strncpy(tmp, p, 2);
::TextOut(pDC->m_hDC, x, y += gap, tmp, 2);
p+=2;
}
x += gap;
}
}
kaer_zhong 2009-03-22
  • 打赏
  • 举报
回复
帮顶。
lizhigang34 2009-03-21
  • 打赏
  • 举报
回复
用TextOut不支持多行??,用DrawText就可以..看下面代码

TCHAR szText[] = "低举疑床\n头头是前\n思望地明\n故明上月\n乡月霜光";
::TextOut(hDC, 10, 10, szText, sizeof(szText));
//输出:
低举疑床|头头是前|思望地明|故明上月|乡月霜光¢

再看下面代码:

TCHAR szText[] = "低举疑床\n头头是前\n思望地明\n故明上月\n乡月霜光";
RECT rc = {10, 10, 400, 400};
::DrawText(hDC, szText, -1, &rc, DT_VCENTER);
//输出:
低举疑床
头头是前
思望地明
故明上月
乡月霜光

好奇怪!!

19,464

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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