特技我来做(下)——编程实现在QQ中发送字符文字
编程魔方
前言:经常利用QQ上网聊天的网友一定收到过用ASCII字符符号组成的各类祝福词句,如“圣诞节快乐”、“生日快乐”等,这样产生的文字效果非常漂亮也很有趣。圣诞和新年马上就要到了,想要给自己的朋友发去这样的祝福吗?别告诉我网站上提供有类似字体,要想发出只属于自己的文字,最好还是亲手做一个能输出字符文字的小软件,节日马上 就到了,还等什么?让我们动手吧。本文所提程序下载地址:http://www.cpcw.com/50/game.rar。
一、原理初探
要实现这类字符文字的原理是什么呢?可谓不说不知道,一说就明了。其实很简单:在程序中设置一个文字输入框,并设该文本框中输入的文字字体为SYSTEM字体(这种字体在屏幕上显示点阵为16×16),并将字的颜色设置为白底黑字模式,文字框中可由用户随意输入汉字信息,然后依靠一个双重循环,分别读取文字输入框中某行某列的点阵颜色信息,如果存在点阵信息(当前读取的点为黑色)即用一字符取代,如果不存在点阵信息就用空格符号取代,一行循环结束后,将生成的字符串加入到一个指定的字符串中,程序继续移到下一行重新读取,直到全部循环结束,然后将字符串的内容输出,这时用户在文本编辑框中就能看到生成的QQ文字了。
生成之后我们可以直接利用鼠标选择这些字符信息进行复制然后在相应的场合中就可方便地使用这些QQ文字了。
二、动手制作
本程序用VFP制作,由于我们只是为了获得字符文字,所以程序的界面相当简洁。先新建一个表单,在表单中增加一个文本框、一个编辑框、一个命令按钮(如图1)。

主要的代码集中在命令按钮COMMAND1里,在它的CLICK事件中加入如下代码:
NR=""
FOR K=3 TO 18
FOR I=1 TO LEN(ALLT(THISFORM.TEXT1.VALUE))*8
IF THISFORM.POINT(I,K)<>0
NR=NR+" "
ELSE
NR=NR+"*"&&这里指定由*为组合文字的ASCII字符,可以由使用者自由改变。
ENDIF
ENDFOR
NR=NR+CHR(13)
ENDFOR
THISFORM.EDIT1.VALUE=NR
三、享受成果
知道原理后,完成工作的效率是不是很高呢?编完程序,该我们享受这个成果了。在文本框中输入“圣诞节快乐”的文字内容,点击“生成QQ文字”命令按钮,这时在编辑框中将会出现自动生成的“圣诞节快乐”的QQ文字了(如图2)。

以上介绍了利用VFP编程实现QQ文字的方法,在程序中还可以通过加入可以选择生成QQ文字的ASCII字符的功能,实现由任意字符组合生成QQ文字,扩展程序的功能,令得到的文字更加丰富有趣。