//16*16的。
CDC *pDC;
COLORREF color = 0;pDC = GetDlgItem(IDC_EDIT_HZ)->GetDC();
for(j = 0; j < 16; j++)
{
for(k = 0; k < 16; k++)
{
color = pDC->GetPixel(k + 1, j + 1);
}
}
解决方案 »
- 菜鸟发问 如何在TCP连接的基础之上实现同步
- 如果线程陷入死循环(或无限等待信号量)导致系统假死,怎么退出调试?
- 一段代码不懂-_-
- readfile句柄无效
- 请教一个关于完成端口的问题,急!
- 用SetWindowPos改变窗口大小后,怎么原来窗口以外的新窗口不刷新呢????我手动刷新但没有效果
- 有哪位高手有XML操作函数GetNamedItem的使用例子的原代码
- 请问: 字符串的双引号前加上L,表示什么意思?
- 请看看宏的问题:
- 怎么才能让一个DialogBar浮动在窗口的任意一处
- VC如何启动telnet(急!!!)
- 我定义了一个消息,可是编译连接时却提示错误:undeclared identifier
BYTE hzbuf[32];
COLORREF color = 0;pDC = GetDlgItem(IDC_EDIT_NAME)->GetDC();
memset(hzbuf, 0x00, 128);
buf[0] = 0x04;
for(j = 0; j < 16; j++)
{
for(k = 0; k < 16; k++)
{
color = pDC->GetPixel(k + 1, j + 1);
if(color == 0)
{
hzbuf[j * 2 + k / 8] |= (0x80 >> (k % 8));
}
}
}
我那时做过点阵屏,ccdos吧,是利用编码调用汉字点阵,各种字体固化在芯片内。感觉你这个方式对传输速度要求高,不过数据量不大也就无所谓了。对最后一个问题,硬件方式不改的话,需要编程,做两种环境,做个切换来实现。代码上面都说过了,两种方式略有差别,我就不说了。
//可以用combo box 让用户选择字体大小,然后CreateFont,获取点阵只是循环次数不同。
Picture1.Font = "宋体"
Picture1.FontName = "宋体"
Picture1.FontSize = 12
Picture1.Cls
End SubPrivate Sub Command3_Click()
Dim i As Long
Dim j As Long
Dim p As Long
Dim fonts(0 To 31) As Long
Dim x As Long
Dim y As Long
Picture1.Cls
x = 0
y = 0
Dim c As Long
Dim b(0 To 31) As Byte
Open App.Path & "\gbk.font" For Binary As #1
Dim a As Long
Dim q As Long
For a = &H81 To &HFE
For q = &H40 To &HFE
c = a * 256 + q
Picture1.Cls
Picture1.CurrentX = 0
Picture1.CurrentY = 0
Picture1.Print Chr$(c)
DoEvents
'从下往上扫
For i = x To x + 15
b(i - x) = 0
For j = y + 7 To y Step -1
p = Picture1.Point(i, j)
If p <> &HFFFFFF Then
b(i - x) = b(i - x) Or (2 ^ (j - y))
End If
Next j
Next i
'从下往上扫
For i = x To x + 15
b(i - x + 16) = 0
For j = y + 7 To y Step -1
p = Picture1.Point(i, j + 8)
If p <> &HFFFFFF Then
b(i - x + 16) = b(i - x + 16) Or (2 ^ (j - y))
End If
Next j
Next i
Put #1, , b
Next q
Next a
''''''''''''''''''''''''''''''''''''''''
'old version
#If 0 Then
For a = &H81 To &HFE
For q = &H40 To &HFE
c = a * 256 + q
Picture1.Cls
Picture1.CurrentX = 0
Picture1.CurrentY = 0
Picture1.Print Chr$(c)
DoEvents
'从上到下先扫,再从左到右扫
For j = y To y + 15
fonts(j - y) = 0
For i = x + 7 To x Step -1
p = Picture1.Point(i, j)
If p <> &HFFFFFF Then
fonts(j - y) = fonts(j - y) Or (2 ^ (7 - i))
End If
Next i
b(j - y) = fonts(j - y)
Next j
For j = y To y + 15
fonts(j - y + 16) = 0
For i = (x + 7 + 8) To (x + 8) Step -1
p = Picture1.Point(i, j)
If p <> &HFFFFFF Then
fonts(j + 16 - y) = fonts(j + 16 - y) Or (2 ^ (7 - (i - 8)))
End If
Next i
b(j - y + 16) = fonts(j - y + 16)
Next j
Put #1, , b
Next q
Next a
#End If
'''''''''''''''''''''''''''''''''''''''''''''''
Close #1
MsgBox "双字节库 gbk.font 完成"
'Shell "explorer.exe " & App.Path, vbNormalFocus
End Sub宋体12字号就是以前在dos下16点阵字库。
http://vicle.ttsite.com/job.php?action-download-pid-tpc-tid-9112833-aid-4665980.html