LPSTR partial=NULL;
partial=new char[(strlen(text)+3)*6+2];
partial[0]='\0';if(code128.Code128BEncode (text,partial)==-1)
  {
   MessageBox("编码错误");
   }
 print(partial,&dc);上面这段代码,是我传入一个text的值,Code128BEncode这个函数转成条形码,然后通过print打印出来,
这个都没有问题现在我想在转成条形码后,在条形码下把text的原始值也加上去
也就是像我们商品上的条形码,下面都有一行条形码实际值,该怎么加上去?

解决方案 »

  1.   

    http://download.csdn.net/source/664442
    http://download.csdn.net/source/158999
    下下来看看是否有用……
    另外好像有个专门的条形码库
      

  2.   

    你的那个库里面有计算条形码大小的没?有的话计算出来,然后单独在条形码的下方直接TextOut条形码数值
      

  3.   

    这是那个编码函数,应该加在什么地方?int CCode128::Code128BEncode(LPSTR text, LPSTR partial)
    {
    unsigned i;
    int code,checksum=0;
    char *str=text;
    if(!partial)
    {
    return -1;
    }

    //首字符为START_B(HEAD)
    strcat(partial,code128set[START_B]);
    //首字符也要加到校验和中去
    checksum+=START_B; //如果字符串为空,则返回
    if(!str)
    {
    delete partial;
    return -1;
    } for(i=0;i<strlen(str);i++)
    {
    if ( str[i] < 32 || (str[i] & 0x80))
    {
    //如为非法字符,则返回
    free(partial);
    return -1;
    }

    code = str[i]-32;
    strcat(partial, code128set[code]);
    //校验和为:first * 1 + second * 2 + third * 3... 
    checksum += code * (i+1); 
    } //最终校验和为除以103所得的余数
    checksum%=103;
    //将校验和加入partial
    strcat(partial,code128set[checksum]);
    //加入STOP结尾字符
    strcat(partial,code128set[STOP]); return 0;
    }