我試圖用TextOut
函數打印新行。使用TextOut功能打印新行
我試圖
TextOut(hDC, 10, 20, "Hello\nWorld", strlen(text));
但輸出的 「HelloWorld」。
如何使用TextOut
打印新行?
我試圖用TextOut
函數打印新行。使用TextOut功能打印新行
我試圖
TextOut(hDC, 10, 20, "Hello\nWorld", strlen(text));
但輸出的 「HelloWorld」。
如何使用TextOut
打印新行?
簡單。 TextOut
沒有任何格式設置功能。改爲使用DrawText
。請參閱格式化標記以居中文本,計算矩形等等。您不必使用DT_EDITCONTROL
標誌來完成DrawText
格式。例如,
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);
在'TextOut'函數中,我只給出x和y座標。現在很難用「DrawText」來定位文本。但我會嘗試使用它。 –
TextOut不格式化特殊字符如回車符,您可以使用DrawText來代替?
所有你可以用的TextOut做的是每次調用它,你需要一個新的生產線,並增加根據喜歡選擇的字體大小和打印機設置y座標(如果選擇的打印機是「通用/純文本」文件中的端口剛剛離開一個由一)。否則,如果文本完全不出現,文本將會爭奪。考慮到這一點,該功能適用於純文本意圖,並根據字體屬性準確知道文本的長度。因此,最好的辦法是使用POS打印機或使用等寬字體,將所有文本包裝操作留給您的關注。
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);
你有沒有試過\ r \ n? –
是的,輸出相同。 –