//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);
}
}

解决方案 »

  1.   

    CDC *pDC;
    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)); 
    }
    }
    }
      

  2.   

    Mark,很久以前了,现在什么技术看一下。
    我那时做过点阵屏,ccdos吧,是利用编码调用汉字点阵,各种字体固化在芯片内。感觉你这个方式对传输速度要求高,不过数据量不大也就无所谓了。对最后一个问题,硬件方式不改的话,需要编程,做两种环境,做个切换来实现。代码上面都说过了,两种方式略有差别,我就不说了。
      

  3.   

    我有一个"用excel表单中显示16*16的汉字点阵"资源,可以看看
      

  4.   


    //可以用combo box 让用户选择字体大小,然后CreateFont,获取点阵只是循环次数不同。
      

  5.   

    最简单的是用vb做,对于这样的应用,vb实在是太合适了。
      

  6.   

    Private Sub Form_Load()
        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点阵字库。
      

  7.   

    picture1是autoredraw的。背景纯白,没有边框。
      

  8.   

    汉字就不用用户输入了吧,当然你也可以输出,我的程序段是转换gbk区间的。
      

  9.   

    给你一个地址,用这个软件吧!
    http://vicle.ttsite.com/job.php?action-download-pid-tpc-tid-9112833-aid-4665980.html