回 帖 发 新 帖 刷新版面

主题:新手问题:点阵字模的问题

我很少用点阵字模,但是也知道用的话会很有效果.
大哥大姐指导一下,谢谢哦![em2]
第一:它需要哪些头文件?
现在有一个"宋"字的字模:
char song16S[]={
/* 以下是 '宋' 的 16点阵宋体 字模,32 byte */
  0x02,0x00,0x01,0x00,0x7F,0xFE,0x41,0x04,
  0x81,0x08,0x01,0x00,0x7F,0xFC,0x03,0x80,
  0x05,0x80,0x05,0x40,0x09,0x20,0x11,0x10,
  0x21,0x0E,0x41,0x04,0x01,0x00,0x00,0x00,
};
怎样实现在VC里显示它?
用到哪些代码?能指点一下吗?就上面这个例子帮我写哈子代码,耽误大哥大姐一下工夫啦:)

回复列表 (共7个回复)

沙发

/?是不是有点麻烦?

板凳

给你一段参考代码,以下代码摘自我的一个程序。


#define FULL_WHITE 0x00ffffff
#define FULL_BLACK 0x00000000

void CDispHZAsHZKView::OnDraw(CDC* pDC)
{
    CDispHZAsHZKDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);

    CPoint leftTop;
    CPoint tmpPt;
    COLORREF c;
    BYTE *p;
    WORD matrix;
    WORD mask;
    int i,j;
         //p=点阵数据地址    
      //leftTop=要显示的坐标;
    for ( i=0;i<16;i++)
    {
                  matrix= p[i*2];
        matrix <<=8;
        matrix |= p[i*2+1];
        mask=0x8000;

        for (j=0;j<16;j++,mask >>= 1)
        {
            if ( !(matrix & mask) )
                c=FULL_WHITE;
            else
                c=FULL_BLACK;

            tmpPt.x=leftTop.x + j;
            tmpPt.y=leftTop.y + i;
            pDC->SetPixel(tmpPt,c);
        }
    }

}

3 楼

俺有些看不懂,因为我学的VC,VC++还没入门~~~能换个例子么?嘿嘿

4 楼

没听说过 VC 和VC++还有区别,楼主能解释一下吗?你用的是那个公司的产品,版本号是多少?

5 楼

顺便说一下,我用的是VC++ 6.0,在这个编程环境下,可以用纯正的c语言写程序(字符界面的控制台程序和windows程序),也可以用c++写程序(字符界面的控制台程序和windows程序),既可以用MFC类库写windows程序,也可以用winAPI(不用MFC)写windows程序。

6 楼

你说的我明白,我的意思是::,|=,CDispHZAsHZKView::OnDraw(CDC* pDC)什么意思不了解,(我用的也是VC6.0Microsoft的)

7 楼

sorry,我误解了你的意思。对于winAPI编程,书倒是看过,但编程经验少,手边也没有什么现成的资料,不能给提供现成的代码。不过你看来查查CreateDC,GetDC等类似的函数,将我的程序稍稍修改,应该不难的,祝你好运。

我来回复

您尚未登录,请登录后再回复。点此登录或注册