所以你在对不同的设备输出时只需要使用不同的设备环境就行了,而作图方式可以完全不变。
这也就是 耀眼的一点设备无关性。如同你将对一幅画使用照相机或复印机将会产生
不同的输出,而不需要对画进行任何调整。, 的使用会穿插在本章中进行介绍。
在窗口中输出文字
在这里我假定读者已经利用 38D. 生成了一个 &, 界面的程序代码。接下来的你
只需要在 派生类的 ,. 成员函数中加入绘图代码就可以了。在这里我需要解释一
下 ,. 函数的作用,,. 函数会在窗口需要重绘时自动被调用,传入的参数 ,J
, 对应的就是 , 环境。使用 ,. 的优点就在于在你使用打印功能的时候传入
,. 的 , 环境将会是打印机绘图环境,使用打印预览时传入的是一个称为 .I,
的绘图环境,所以你只需要一份代码就可以完成窗口打印预览打印机绘图三重功能。利用
的设备无关性和 1为打印预览所编写的上千行代码你可以很容易的完成一个具有所
见即所得的软件。
输出文字一般使用 ,99>*(H88-8H582538&8.6F8.0和 ,998
,.(H8-38&8.6F8.5*)E()385'(./80两个函数,对 (H88
来讲只能输出单行的文字,而 ,.(H8 可以指定在一个矩形中输出单行或多行文字,并且可
以规定对齐方式和使用何种风格。./8 可以是多种以下标记的组合(利用位或操作)以达
到选择输出风格的目的。
,(+>(( 底部对齐 &3P<88/MO8P8H8(4I/8<3/<
84,(+&'*E*'E
,(+*)E( 计算指定文字时所需要矩形尺寸 ,8./84844648?84
.386?84../8?8H85,.(H88484?84
.38688<2)38H884<?84.3868<84
8?8H8?84.2?8H85,.(H8/?284.648
?84.3868488<84834.38.8484.35
,.(H8.8.844648?84?./888H85<88.848H8
,(+E'(E) 中部对齐 8.8H84.D82
,(+E',+E**&&.,(+(+E**&&)3.8?846I8.684
5?3.2584884.8P8843P.386(46I
8.68/P84,(+,:&()'Q63P
:33?2,(+E',+E**&&8.334.38.884?848.65.
,(+(+E**&&8.334.38.84/?848.6?848.6
38<3=4-R034.38.5,(+(+E**&&..I/34
<?848H8?8.848<3=4
,(+EC',(>&EH8<34.38.(4?8/<.?34.38..
8<648
,(+EC(E)'**E,'384?8 抯 H8.6844648
'./25H8.683844648??8H8