读书人

为什么这段打印代码第一次可以打印但第

发布时间: 2012-04-09 13:41:25 作者: rapoo

为什么这段打印代码第一次可以打印但第二次变成黑块?
简单的打印出Memo1空间中的文字,nCaption是窗体类的一个私有成员,根据其值设置打印标题。

  现在每次运行程序生成窗体后只能正常打印第一张,打印完后想再打一张点击按钮后打印结果里应该打字的地方变成很多黑条,请问是代码有问题么?谢谢大家!
 
#include <Printers.hpp>  
打印按钮代码如下:

TPrinter *Prntr = Printer();

//设置边距200像素
TRect r = Rect(200, 200, Prntr-> PageWidth - 200, Prntr-> PageHeight - 200);

//设置打印标题
if (nCaption == 1)
Prntr-> Title = "存货清单 ";
else
Prntr-> Title = "结算 ";

Prntr-> BeginDoc();

//依次打印memo中每行
for(int i = 0; i < Memo1-> Lines-> Count; i++)
Prntr-> Canvas-> TextOut(200, 200 + (i * Prntr-> Canvas-> TextHeight(
Memo1-> Lines-> Strings[i])),Memo1-> Lines-> Strings[i]);

//设置打印笔刷颜色
Prntr-> Canvas-> Brush-> Color = clBlack;
Prntr-> Canvas-> FrameRect(r);
Prntr-> EndDoc();


[解决办法]
Prntr-> Canvas-> Brush-> Color = clBlack; 你这句把Bruch设成黑色了,下次用TextOut的时候背景自然是黑的了(文字也是黑的,成一黑块块)

在Prntr-> BeginDoc();下面加一句 Prntr-> Canvas-> Brush-> Color = clWhite;

[解决办法]
Prntr-> Canvas-> Brush-> Color设置背景色,比如画面背景或填充色,不改变打印的的颜色。

读书人网 >C++ Builder

热点推荐