作毕业设计。我要在液晶上显示汉字,不知道汉字的字模应该怎么得到?

解决方案 »

  1.   

    先显示到内存位图中
    再取其内容
    由于字体占的空间不大,用GetPixel就可以
      

  2.   

    你需要汉字的位图。你可以编一个程序,往CDC上面写字,然后把上面的像素取下来就行了。
    ============================================================================
    提问题时标题要简明扼要地说明问题内容,切忌使用"急","求救"之类不能说明问题的标题
    http://www.betajin.com/alphasun/index.htm          给我发信息请附带原帖地址
    http://alphasun.18en.com/                    http://shakingtoolkit.9126.com/
    DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析
      

  3.   

    ftp://ftp.laogu.com/C51BBS/_upload/字模精灵(Version1.0).rar
    用户名:laogu.com
    密码:laogu.com想要源代码的请先登记,过一段时间会公布。
      

  4.   

    to JennyVenus() 
    根据您说的:
    ftp://ftp.laogu.com/C51BBS/_upload/字模精灵(Version1.0).rar
    不用用户名和密码的。但是下载不下来啊
    总说有错误发生:]
    Tue Apr 22 16:51:26 2003 ÓдíÎó·¢Éú!
      

  5.   

    回复人: JennyVenus() ( ) 信誉:151  2003-04-22 03:08:00  得分:0 
     
     
      不是我说的啊。
      
     
    ???????不明白!!!
     
      

  6.   

    你可以这么做,建立一个16*16的黑白位图,把你想要得字符输进去,然后读取最后32个字节。不过好像上下翻了,程序不怎么难写。参考我以前写的程序调用
    writetext( "汉字", ".", "" );
                           .         
      .          .          .        
       .. .........    ............  
        .        .     .          .  
     .     .     .    .          .   
      ..   .     .      ........     
       .   .    .             .      
         .  .   .            .       
        .   .  .            .     .  
       .     . .     ............... 
     ...      .             .        
       .     . .            .        
       .    .   .           .        
       .   .     .          .        
       .  .      ...      . .        
         .        .        .         void CtxtDlg::writetxt( char *txt, char *c, char *p )
    {
    FILE *fp, *fp1, *fp2;
    char str[ 32 ];
    char t[ 3 ];
    int j, k, venus;
    long rec, len;
    char buf[ 32768 ];
    memset( buf, 0, 32768 );
    memset( t, 0, 3 );
    char end[ 10 ] = "         ";
    char *jenny; end[ strlen( c ) ] = 0; if( ( fp = fopen( ".\\hzk16", "rb" ) ) == NULL )
    AfxMessageBox( "没有找到汉字库 .\\hzk16", MB_OK, -1 );
    else
    {
    if( ( fp2 = fopen( ".\\asc16", "rb" ) ) == NULL )
    AfxMessageBox( "没有找到ASCII字库 .\\asc16", MB_OK, -1 );
    else
    {
    for( venus = 0; venus < 16; venus++ )
    {
    jenny = txt;
    strcat( buf, p );
    strcat( buf, " " );
    while( *jenny  )
    {
    memset( t, 0, 3 );
    if( ( ( unsigned char )( *jenny ) >= 161 ) && ( ( unsigned char )( *( jenny + 1 ) ) >= 161 ) )
    {
    t[ 0 ] = ( *jenny );
    t[ 1 ] = ( *( jenny + 1 ) );
    //AfxMessageBox( t ); rec = ( ( ( unsigned char )t[ 0 ] ) - 161 ) * 94 + ( ( ( unsigned char )t[ 1 ] ) - 161 );
    len = rec * 32l;
    //sprintf( buf, "%d", len );
    //AfxMessageBox( buf );
    fseek( fp, len, SEEK_SET );
    fread( str, 1, 32, fp );
    for( j = 0; j < 2; j++ )
    {
    for( k = 0; k < 8; k++ )
    {
    if( ( str[ venus * 2 + j ] >> ( 7 - k ) ) & 0x01 )
    strcat( buf, c );
    else
    strcat( buf, end );
    }
    }
    jenny += 2;
    }
    else
    {
    t[ 0 ] = ( *jenny );
    //AfxMessageBox( t ); rec =  ( unsigned char )t[ 0 ];
    len = rec * 16l;
    //sprintf( buf, "%d", len );
    //AfxMessageBox( buf );
    fseek( fp2, len, SEEK_SET );
    fread( str, 1, 16, fp2 );
    for( k = 0; k < 8; k++ )
    {
    if( ( str[ venus ] >> ( 7 - k ) ) & 0x01 )
    strcat( buf, c );
    else
    strcat( buf, end );
    }
    jenny++;
    }
    }
    if( m_n.GetCheck() )
    strcat( buf, "\n" );
    else
    strcat( buf, "\r\n" );
    }
    if( ( fp1 = fopen( ".\\a.txt", "w" ) ) != NULL )
    {
    fputs( buf, fp1 );
    fclose( fp1 );
    }
    else
    AfxMessageBox( "创建文件 a.txt 失败", MB_OK, -1 );
    }
    fclose( fp2 );
    }
    fclose( fp );
    AfxMessageBox( ( LPCTSTR )buf, MB_OK, -1 );
    return;
    }