?? module1.bas
字號(hào):
Attribute VB_Name = "Module1"
Public ZMSZ(32) As Byte
Public ZMPrint(16, 32) As Byte
Public ZMMatrix() As Byte
Public XX As Variant
Public YY As Variant
Public 紅, 黃, 綠, 洋紅, 藍(lán), 青, 黑, 白 As Variant
Public color As Variant
Public back As Variant
Public StrLength As Variant
Public ChrWidth, ChrHeight As Integer
Public Xadd, Yadd As Integer
Public Function GetStrDot(MYSTR As String) As Integer '轉(zhuǎn)化字符串點(diǎn)陣,結(jié)果存入ZMMatrix字模矩陣中
'Dim L As Integer
Dim CharTemp As String
If MYSTR = "" Then '判斷輸入是否正確
MsgBox "沒(méi)有正確輸入!"
Exit Function
End If
StrLength = Len(MYSTR) '字符串長(zhǎng)度
'GetStrDot = L
ReDim ZMMatrix(1 To StrLength, 1 To 32) As Byte
For i = 1 To StrLength
GetCharDot (Mid(MYSTR, i, 1)) '調(diào)用字符字模生成程序
For j = 1 To 32
ZMMatrix(i, j) = ZMSZ(j)
Next j
Next i
End Function
Public Function GetCharDot(MYCHAR As String) '字符字模生成程序 (字模源HZK16) 得到原始點(diǎn)陣,橫向排布的
'點(diǎn)陣排列
'高位 :低位
'第一字節(jié):第二字節(jié)
'第三字節(jié):第四字節(jié)
'................
'第31字節(jié):第32字節(jié)
Dim JNM As Variant, QWM As Variant '定義JNM為機(jī)內(nèi)碼,QWM為區(qū)位碼
Dim QM As Variant, WM As Variant '定義QM為區(qū)碼,WM為位碼
Dim ADDR As Variant '定義ADDR為偏移地址
Dim i As Integer, FNUM As Integer, NUM_BYTES As Variant
Dim BYTES() As Byte
'If MYCHAR = "" Then MYCHAR = " "
If Asc(MYCHAR) < 0 Then
JNM = Hex(Asc(MYCHAR)) 'MYCHAR是一個(gè)漢字字符
QWM = Hex(Asc(MYCHAR) - &HA1A1) '機(jī)內(nèi)碼-A1A1=區(qū)位碼'
ElseIf Asc(MYCHAR) >= 0 Then '非漢字模則為ASCII碼
JNM = Hex(Asc(MYCHAR) + &HA380)
QWM = Hex(Asc(MYCHAR) + &HA380 - &HA1A1)
End If
If Len(QWM) = 3 Then
QM = Mid(QWM, 1, 1) '通過(guò)區(qū)位碼得到區(qū)碼
WM = Mid(QWM, 2, 2) '通過(guò)區(qū)位碼得到位碼
ElseIf Len(QWM) = 4 Then
QM = Mid(QWM, 1, 2)
WM = Mid(QWM, 3, 2)
ElseIf Len(QWM) < 3 Then
QM = "0"
WM = QWM
End If
ADDR = 32 * ((CLng("&H" & QM)) * 94 + (CLng("&H" & WM))) '求偏移地址
'打開(kāi)字庫(kù)文件文件
'FNUM = FreeFile
'Open App.Path + "\HZK16" For Binary As #FNUM '打開(kāi)庫(kù)文件KHKZ16
'NUM_BYTES = LOF(FNUM)
'ReDim BYTES(1 To NUM_BYTES) As Byte '獲取字庫(kù)數(shù)據(jù)
'Get #FNUM, , BYTES
'For i = 1 To 32
'ZMSZ(i) = BYTES(ADDR + i ) 'bytes(1) 從1開(kāi)始復(fù)制
'Next
'Close FNUM '關(guān)閉字庫(kù)文件
'''''''''''''''''''''''''''''''''''''''''''''''''
'ReDim BYTES(1 To 65536) As Byte
'使用資源文件(RES),把漢字庫(kù)打包入exe
BYTES = LoadResData("hzk16", "TextFile") '字符的字模點(diǎn)陣,存放在全局?jǐn)?shù)據(jù)變量ZMDZ中
For i = 1 To 32
ZMSZ(i) = BYTES(ADDR + i - 1) 'bytes(0) 從0開(kāi)始復(fù)制
Next
End Function
Public Function ZXCharDot() '轉(zhuǎn)換為豎向點(diǎn)陣
'點(diǎn)陣排布
'第0位~~~第15位
'1:3:5...31
'-----
'2:4:6...32字節(jié)
Dim ZMTemp(32) As Byte
k = 1
For i = 1 To 15 Step 2 '左上角轉(zhuǎn)換 1to 15->1 to 15 step 2
If (ZMSZ(i) And &H80) = &H80 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H40) = &H40 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H20) = &H20 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H10) = &H10 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H8) = &H8 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H4) = &H4 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H2) = &H2 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H1) = &H1 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
For j = 1 To 15 Step 2 '每次取位值都放在數(shù)據(jù)最高位,數(shù)據(jù)左移移位 準(zhǔn)備下次取值
ZMTemp(j) = byteLeft(ZMTemp(j), 1)
Next j
k = 1
Next i
k = 2 '左下角轉(zhuǎn)換 17 to 31-> 2 to 16 step 2
For i = 17 To 31 Step 2
If (ZMSZ(i) And &H80) = &H80 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H40) = &H40 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H20) = &H20 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H10) = &H10 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H8) = &H8 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H4) = &H4 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H2) = &H2 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H1) = &H1 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
For j = 2 To 16 Step 2 '每次取位值都放在數(shù)據(jù)最高位,數(shù)據(jù)左移移位 準(zhǔn)備下次取值
ZMTemp(j) = byteLeft(ZMTemp(j), 1)
Next j
k = 2
Next i
k = 17 '右上角轉(zhuǎn)換,2 to 16->17 to 31 step 2
For i = 2 To 16 Step 2
If (ZMSZ(i) And &H80) = &H80 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H40) = &H40 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H20) = &H20 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H10) = &H10 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H8) = &H8 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H4) = &H4 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H2) = &H2 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
k = k + 2
If (ZMSZ(i) And &H1) = &H1 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
For j = 17 To 31 Step 2 '每次取位值都放在數(shù)據(jù)最高位,數(shù)據(jù)左移移位 準(zhǔn)備下次取值
ZMTemp(j) = byteLeft(ZMTemp(j), 1)
Next j
k = 17
Next i
k = 18 '右上角轉(zhuǎn)換,18 to 32->18 to 32 step 2
For i = 18 To 32 Step 2
If (ZMSZ(i) And &H80) = &H80 Then
ZMTemp(k) = ZMTemp(k) Or &H80
Else
ZMTemp(k) = ZMTemp(k) And &H7F
End If
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -