您的位置:逆风者 VB 正文
原作者:www.upwinder.com 添加时间:2007-09-02 原文发表:2007-08-31 人气:17 来源:未知

本文章共3138字,分3页,当前第1页,快速翻页:
 
BASIC语言历史悠久,近年来发展迅速。BASIC语言的结构化程度高,易于理解,很适合广大的编程人员使用。而第三代BASIC语言的功能更是日臻完善、强大,使用人员更多。
逆@风@者

本文意在向编程经验不十分丰富的读者介绍用BASIC语言设计Windows风格的图形用户接口,起一点抛砖引玉的作用,不妥之处望不吝赐教。程序
在VGA(用Screen 12语句设置)方式下运行,可在Quick BASIC、MS BASIC或Visual BASIC for MS-DOS下编译。另外需要说明的是程序中设置颜色使用的都是调色板位置号,一个调色板位置号并不固定代表某种特定颜色,而是可以由编程者通过PALETTE语句或PALETTE USING语句自行指定的。当然,一般情况下我们使用系统缺省的调色板颜色。

1.读点阵字模交叉显示汉字及ASCII字符。

这里要用到UCDOS 3.1的HZK16和ASC16两个字模文件,该功能模块的代码如下:

SUB DispHz (HzCol%, HzRow%, Color%, HzStr$)

DIM i1, i2, i3, I, c1, c2, f, g, HzChar, AscChar AS INTEGER

DIM HzBy AS STRING * 32

DIM AscBy AS STRING * 16

DIM l, HzRec AS LONG

OPEN "HZK16" FOR BINARY AS #1 `打开汉字库文件

OPEN "ASC16" FOR BINARY AS #2 `打开ASCII码字库文件

HzLen% = LEN(HzStr$) `计算字符串长度

HzPos% = 1 `置字符串的首字节为当前字节

WHILE HzPos% <= HzLen% `字符串显示完前一直循环

I = ASC(MID$(HzStr$, HzPos%, 1)) `获取当前字符的ASCII值

IF I > &HA0 THEN `判断是否为汉字内码

IF f = 0 THEN `f为零则该字节为汉字区码

c1 = I - &HA1 `计算区码

f = -1 `置f为非零

ELSE `f不为零则该字节为汉字位码

c2 = I - &HA1 `计算位码

f = 0 `置f为零

HzRec = c1 * 94 c2 `计算汉字在字库中的记录号

l = HzRec * 32 1 `计算汉字在字库中的起始字节位置

GET #1, l, HzBy `从l开始读取32字节

FOR i1 = 0 TO 15 `字模垂直方向16行点

FOR i2 = 0 TO 1 `每行16个点对应的两个字节

HzChar = ASC(MID$(HzBy, i1 * 2 i2 1, 1)) `每个字节的ASCII值

FOR i3 = 0 TO 7 `每个字节的8位

IF (HzChar (2 & (7 - i3))) AND &H1 THEN `若该位是1

PSET (HzCol% i2 * 8 i3, HzRow% i1), Color% `画点

END IF

NEXT i3

NEXT i2

NEXT i1

HzCol% = HzCol% 16 `将光标置于下一个字符的左上角

END IF

ELSE `不是汉字内码则为ASCII码

l = I * 16 1 `计算ASCII字符在字库中的起始字节位置

GET #2, l, AscBy `从l开始读取16字节

FOR i1 = 0 TO 15

`字模垂直方向16行点,每行对应1个字节

AscChar = ASC(MID$(AscBy, i1 1, 1)) `每个字节的ASCII值

FOR i3 = 0 TO 7 `每个字节的8位

IF (AscChar (2 & (7 - i3))) AND &H1 THEN `若该位是1

PSET (HzCol% i3, HzRow% i1), Color% `画点

END IF

NEXT i3

NEXT i1

HzCul% = HzCul% 8 `光标置于下一个字符的左上角

END IF

HzPos% = HzPos% 1 `置字符串的下一个字节为当前字节

WEND

CLOSE

END SUB

参数HzCol%、HzRow%是所要显示字符串的左上角坐标,Color%是字符串的颜色,HzStr$ 是要显示的字符串,其中可包含汉字、图形符号和ASCII字符。

2.Windows风格图形界面。

Windows界面简洁、美观、标准,用BASIC语言的图形函数可以很方便地生成一个Windo ws风格界面。

先用VIEW (0, 0)-(639, 479), 3设置背景色,再调用下面的过程生成窗口,调用一次生成一个窗口。参数Le%、Top%、Ri%、Bo%指定窗口左上角和右下角的坐标,FrmCol%、TitCo l%是工作区和标题栏背景色,Title$、Menu$是标题和菜单的文字内容。例如,以下调用将生成一个主窗口和一个子窗口:

MyForm 30, 30, 609, 440, 7, 4, "程序主窗口", "文件[F] 选项[O] 窗口[W] 帮助[H]"

MyForm 70, 90, 569, 400, 15, 1, "程序子窗口", "文件[F] 编辑[E] 搜索[S] 运行[R] 帮助[H]"

过程代码如下:

SUB MyForm (Le%, Top%, Ri%, Bo%, FrmCol%, TitCol%, Title$, Menu$)
 
本文章更多内容1 - 2 - 3 - 下一页>>
相关文章

基于Visual Basic 6的网络程序设计
自己的IE——用VB制作浏览器
VB邮件检查程序
用VB实现“ICQ”式的启动欢迎画面
一个用记录集填充表格的函数
VB Access开发的登录程序
VB实用编程两例
Whois 示例程序
用VB6编写强力的windows隐藏引擎
用VB创建Windows快捷方式
用WinSock设计Chat程序
VB中API菜單編輯器的實現````
如何在VB中实现绘图区的大十字光标
用VB实现象Windows记事本的一些功能
在VB中实现文件上传
利用Winsock控件实现局域网通信
VB 从零开始编外挂(十一)
用VB制作TopMost类型窗口
在VB环境中操作三维模型的实现方法
怎样接收电子邮件(POP3协议简介)

相关评论


本文章所属分类:首页 VB

  热门关键字: