首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用TextOut函数打印新行

使用TextOut函数打印新行
EN

Stack Overflow用户
提问于 2011-08-19 22:48:20
回答 4查看 6.2K关注 0票数 5

我正在尝试使用TextOut函数打印一个新行。

我试过了

代码语言:javascript
复制
TextOut(hDC, 10, 20, "Hello\nWorld", strlen(text));

但是输出是"HelloWorld“。

如何使用TextOut打印新行

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-19 22:51:10

很简单。TextOut没有任何格式化功能。请改用DrawText。请参见将标志设置为居中文本、计算矩形等。您不必使用DT_EDITCONTROL标志来完成DrawText格式设置。例如,

代码语言:javascript
复制
HDC dc = ::GetDC(0);
RECT rc;
char *lpsz= "Hello\r\nWorld";
::SetRect(&rc,0,0,300,300);
::DrawText(dc,lpsz,::strlen(lpsz),&rc,DT_LEFT | DT_EXTERNALLEADING | DT_WORDBREAK);
::ReleaseDC(0,dc);
票数 4
EN

Stack Overflow用户

发布于 2011-08-19 22:52:02

TextOut不会格式化像回车符这样的特殊字符,您可以使用DrawText吗?

票数 2
EN

Stack Overflow用户

发布于 2016-07-27 04:51:54

你能用TextOut做的就是每次你需要一个新行的时候调用它,并根据所选的字体大小和打印机等设置增加y坐标(如果所选的打印机在文件端口是“通用/仅文本”,只需一个接一个地保留)。否则,如果文本根本不出现,它将被打乱。考虑到这一点,这个函数适用于纯文本意图,并根据字体属性准确地知道文本的长度。因此,最好的用法是使用POS打印机或使用等宽字体,将所有文本包装操作留给您关注。

代码语言:javascript
复制
int
    increment,
    y;
char
    *text,
    *text0;
increment=25;
y=0;
text="Hello";
text0="World";
TextOut(hDC,10,y+=increment,text,strlen(text));
TextOut(hDC,10,y+=increment,text0,strlen(text0));
TextOut(hDC,10,y+=increment,"",0);
TextOut(hDC,10,y+=increment,"",0);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7123343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档