QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1080|回复: 0

获得字符串在屏幕上宽度的问题.cairo_text_exte

[复制链接]
发表于 2006-9-29 11:07:56 | 显示全部楼层 |阅读模式
GtkWidget* normal_drawing_area = gtk_drawing_area_new();
        
g_signal_connect(G_OBJECT(normal_drawing_area), "expose-event", G_CALLBACK(BigPaint), BR);



void BigPaint(GtkWidget *w, GdkEventExpose *evt,_BookReader *BR)
{


  
       cairo_t *cr;
              cr = gdk_cairo_create(w->window);
       cairo_set_source_rgb(cr, 1, 1, 1);
  
             cairo_paint(cr);
             if(RF==1)//旋转90度
                {
                cairo_rotate(cr, M_PI/2.0);
                }
                else// 不旋转
       
                {
                }
             cairo_select_font_face(cr, "Sans", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);

                cairo_set_source_rgb(cr, 0, 0, 0);
            cairo_set_font_size(cr,BR->font_size);
                int iline=1;
                for(iline=1;iline<=Filux_GetCurPageLineCount();++iline)
                {

                        if(1==RF)        //旋转90度
                        {               

                            cairo_move_to(cr, 0, -(evt->area.width)+BR->font_size*iline);
               
                             cairo_show_text(cr, PageCon[iline-1]);



                        }
                        else        // 不旋转
                        {       
                                  cairo_move_to(cr, 0, BR->font_size*iline);
                             cairo_show_text(cr, PageCon[iline-1]);
                                cairo_text_extents(cr,PageCon[iline-1],StringRect);
                                printf("\n\n PageCon[iline-1] %s \n",PageCon[iline-1]);
                                printf("StringRect->x_bearing ,  %d StringRect->y_bearing StringRect->width  %d ,StringRect->height  %d ,StringRect->x_advance %d ,StringRect->y_advance %d",StringRect->x_bearing , StringRect->y_bearing,StringRect->width,StringRect->height,StringRect->x_advance,StringRect->y_advance);



                        }
}


在屏幕上能正常显示,但是需要知道每个字在屏幕上的位置,
而cairo_text_extents获得的字体宽/高均为之 0.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-5-2 06:56 , Processed in 0.061452 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表