http://216.5.163.53/DirectX4VB/Tutorials/DirectX7/DD_DrawText.asp
这一章是紧接着"在绘图页上绘制简单图样"那一章来讲的,这二章都讲解了向绘图页输出特殊的图形内容的操作,这种"特殊的图形内容"与绘制到绘图页的普通图形内容的不同之处在于,它们不是通过加载图片文件的方式获得的,而是直接在绘图页上生成的,比如"简单图样"是通过划线或填充的方式得到的,而文字也不是由任何既存的,预先绘制好的图片构成的一样,向一个绘图页绘制文字是一门轻活,并且十分有用.
第一步:设置文字属性
这是在屏幕上输出文字的最重要的步骤,你必须在这一个步骤设置字体及要输出的文字其它的可选部分属性,如文字是否加粗,是否以它的斜体显示,是否加下划线等,你将使用到VB中一种叫做"类"的数据结构,在这个结构里包含了所有上面提到的关于对要输出的文字进行的设置的相关方方面面的属性,然后,这个"类"的名字将在以后的向绘图页输出文字的工作中被DX用以向要绘制到的绘图页表面作注册申明处理.
Dim FontInfo As New StdFont '注意 "New" - 这个很重要.
backbuffer.SetFontTransparency True
backbuffer.SetForeColor RGB(0, 0, 200)
FontInfo.Bold = True
FontInfo.Size = 20
FontInfo.Name = "Verdana"
backbuffer.SetFont FontInfo
StdFont变量跟页面描述的概念相似,是一个结构,你填充这个结构的各个成员分量值,再在以后的操作中把它注册申明到绘图页,方法"SetForeColor"在讲解"在绘图页上绘制简单图样"时已经谈到过,如果你没有看那一章的话,我建议你还是在这里停一下,读完那一章再从这里读下去,SetFontTransparency的值有时会很有用,但是在默认情况下建议不去使用它,因为如果它取false值,每个字母都画在一个方框里,看起来就像一台老式的电脑显示器,四四方方的很难看,但是我想这种效果在某些时刻总会有用吧,尽管如此,当你在你的程序中取了false值时,你可以用"SetFontBackColor"来设置字母的底色以带来好看的效果.
给你提个醒,当你选择字体时,所能选择的字体是要能从系统的字体文件夹中找到的那些字体,比如你选择了"exotic"体,当你分发你的程序时,你最好寻求一种能让你的程序获得这种字体的方法,如果这个方法没有达成的话,即在运行程序的计算机内找不到程序使用的字体,那个时候系统将使用默认的系统字体来代替它.
第二步:绘制文字的实际过程
当你的设置工作都完工了之后,你现在可以实际为要在绘图页上输出的某些文本建立属性了,你现在将需要把这些文本绘制到屏幕上,而这是一件再简单不过的事情,只要使用下面这一行语句就行了:
Surface.DrawText(x As Long, y As Long, text As String, b As Boolean)
参数x和y很容易理解,它们指明了文本在绘图页上的绘图位置,即文本的最左上在绘图页中的坐标,参数text可以是变量形式存在的字符串,也可是普通的常量字符串如"Inside quotation marks",而参数b的取值告诉了DDraw
下一次绘制时的文本位置,如果当前进行文字绘制的x,y值都是0,那么当下一次调用Surface.DrawText()进行文字绘制时,新的文本将出现在上一次文本在绘图页的位置的后面.
Call Backbuffer.DrawText(10,10,"The Variable is: " & SomeVariable, false)
以上就是把一段文本绘制到绘图页上某个位置的最有效和最简单的办法,最后的Call()过程部分你也不可以不调用它,它们的作用好像只是防止因变量声明而出现错误.