编程论坛's Archiver

蔡蔡 发表于 2007-7-1 17:12

在图形模式下怎么输出汉字?

怎么输出汉字呀?[em03]

beyondabcd 发表于 2007-7-1 19:06

调用字库

蔡蔡 发表于 2007-7-1 19:20

回复:(beyondabcd)调用字库

老兄,你也太简单了吧~<BR>能不能讲清楚点呀?<BR>最好再举个例子[em11]

beyondabcd 发表于 2007-7-1 19:44

你在迅雷上找一本C游戏入门到精通的一本书那上讲的很细,对了,还有源码

jig 发表于 2007-7-1 23:29

<P>LZ可以找到一个现成的例子<BR><BR>在WIN-TC的安装目录下有个中文汉字显示实例,你自己可以去看看源码。</P>

neverTheSame 发表于 2007-7-4 13:25

<a href="http://bbs.bc-cn.net/viewthread.php?tid=131723&amp;star=at" target="_blank" >http://bbs.bc-cn.net/viewthread.php?tid=131723&amp;star=at</A>#

yuerhb 发表于 2007-7-4 16:08

#include&lt;dos.h&gt;   <BR>  #include&lt;conio.h&gt;   <BR>  #include&lt;stdio.h&gt;   <BR>  #include&lt;stdlib.h&gt;   <BR>  #include&lt;process.h&gt;   <BR>  #define   VGA256   0x13   <BR>  #define   TEXT_MODE   0x03   <BR>    <BR>  unsigned   char   far   *video_buffer=(char   far   *)0xA0000000L;   <BR>    <BR>  unsigned   char   bit[8]={128,64,32,16,8,4,2,1};   <BR>    <BR>  void   Delay(int   clicks)   <BR>  {   <BR>  unsigned   int   far   *clock=(unsigned   int   far   *)0x0000046CL;   <BR>  unsigned   int   now;   <BR>  now=*clock;   <BR>  while(abs(*clock-now)&lt;clicks){}   <BR>  }   <BR>    <BR>    <BR>  void   Plot_Pixel_Fast(int   x,int   y,char   color)   <BR>  {   <BR>  video_buffer[((y&lt;&lt;8)+(y&lt;&lt;6))+x]=color;   <BR>  }   <BR>    <BR>  void   GetHzBit(char   ch0,char   ch1,char   *bitdata)   <BR>  {   <BR>  FILE   *stream;   <BR>  long   fpos;   <BR>  fpos=32L*(((unsigned   char)ch0-161)*94+((unsigned   char)ch1-161));   <BR>  if((stream=fopen("hzk16","rb"))==NULL){   <BR>  printf("Open   hzk16   error!\\n");   <BR>  exit(0);   <BR>  }   <BR>  fseek(stream,   fpos,   SEEK_SET);   <BR>  fread(   bitdata,   32,   1,   stream);   <BR>  fclose(stream);   <BR>  }   <BR>    <BR>  void   WriteHz(char   ch0,char   ch1,int   x,int   y,int   color)   <BR>  {   <BR>  register   int   i,j,k;   <BR>  unsigned   vpos;   <BR>  char   bitdata[32];   <BR>  GetHzBit(ch0,ch1,bitdata);   <BR>  for(i=0;i&lt;16;i++)   <BR>  for(j=0;j&lt;8;j++){   <BR>  if(bitdata[2*i]&amp;bit[j])   <BR>  Plot_Pixel_Fast(x+j,i+y,color);   <BR>  if(bitdata[2*i+1]&amp;bit[j])   <BR>  Plot_Pixel_Fast(x+8+j,i+y,color);   <BR>  }   <BR>  }   <BR>  void   WriteHzStr(char   *str,int   x,int   y,int   color)   <BR>  {   <BR>  int   num,i,j,xx;   <BR>  unsigned   char   s0,s1;   <BR>  num=strlen(str);   <BR>  xx=x;   <BR>  for(i=0;i&lt;num;i+=2){   <BR>  WriteHz(str[i],str[i+1],xx,y,color);   <BR>  xx+=16;   <BR>  }   <BR>  }   <BR>    <BR>  void   Words_Step(char   *str,int   x,int   y,int   color,int   speed)   <BR>  {   <BR>  int   num,i,j,xx;   <BR>  unsigned   char   s0,s1;   <BR>  num=strlen(str);   <BR>  xx=x;   <BR>  for(i=0;i&lt;num;i+=2){   <BR>  WriteHz(str[i],str[i+1],xx,y,color);   <BR>  Delay(speed);   <BR>  xx+=16;   <BR>  }   <BR>  }   <BR>    <BR>  void   Set_Video_Mode(int   mode)   <BR>  {   <BR>  union   REGS   inregs,outregs;   <BR>  inregs.h.ah=0;   <BR>  inregs.h.al=(unsigned   char)mode;   <BR>  int86(0x10,&amp;inregs,&amp;outregs);   <BR>  }   <BR>    <BR>  void   main(void)   <BR>  {   <BR>  Set_Video_Mode(VGA256);   <BR>  WriteHzStr("按任意键进入中文渐显:",10,100,WHITE);   <BR>  getch();   <BR>  Words_Step("现在文字处于渐显状态。",10,130,WHITE,4);   <BR>  getch();   <BR>  Set_Video_Mode(TEXT_MODE);   <BR>  }   <BR><BR>这个是我找到的不知道对你有帮助么?[em03]

蔡蔡 发表于 2007-7-4 19:16

我晕了~~输出几个汉字原来这么复杂的<img><br>没有什么函数的吗?<br>

cdmalcl 发表于 2007-7-4 19:43

<P>自己写一个函数以后不就可以直接用了</P>

一笔苍穹 发表于 2007-7-5 08:33

yuerhb给你的都是函数啊

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.