当前位置: 代码迷 >> 综合 >> 当前语言为阿拉伯语时,在图片编辑中图片不能正常添加文字
  详细解决方案

当前语言为阿拉伯语时,在图片编辑中图片不能正常添加文字

热度:14   发布时间:2024-01-19 20:41:41.0
此问题的原因是阿拉伯语传下的x坐标需要是字符串最右边的坐标,否则显示会有问题   
修改方法如下: 
以下方法修改函数VappImgEdtTextPage::redrawText(),谢谢. 
void VappImgEdtTextPage::redrawText() 
{ 
 VFX_ASSERT(m_gdiHdl != 0); 
 VfxPoint offset(0,0); 
  
 vrt_text_dir_type_enum dir = vrt_sys_get_text_dir(); 
  
 if(dir == MG_TEXT_DIR_TYPE_L2R) 
 { 
 offset.x = (m_textFrameSize.width - m_strSize.width)/2; 
 } 
  else if(dir == MG_TEXT_DIR_TYPE_R2L) 
 { 
 offset.x = (m_textFrameSize.width - m_strSize.width)/2 + m_strSize.width; 
 } 
 offset.y = (m_textFrameSize.height - m_strSize.height)/2; 
 VAPP_IMGEDT_INFO_TRACE(offset.x); 
 VAPP_IMGEDT_INFO_TRACE(offset.y); 
  
 gdi_layer_push_and_set_active(m_gdiHdl); 
 gdi_layer_clear(GDI_COLOR_TRANSPARENT); 
 gui_push_text_clip(); 
 gui_set_text_color(gui_color(g_imgedt_text_color_list[m_colorIndx].r,  
g_imgedt_text_color_list[m_colorIndx].g,  
g_imgedt_text_color_list[m_colorIndx].b)); 
 if(dir == MG_TEXT_DIR_TYPE_L2R) 
 { 
 gui_set_text_clip(offset.x, offset.y, offset.x + m_strSize.width, offset.y +
m_strSize.height); 
 } 
  else if(dir == MG_TEXT_DIR_TYPE_R2L) 
 { 
 gui_set_text_clip(offset.x - m_strSize.width, offset.y, offset.x, offset.y +
m_strSize.height); 
 } 
 gui_move_text_cursor(offset.x, offset.y); 
 gui_print_text((UI_string_type)m_string.getBuf()); 
 gui_pop_text_clip(); 
 gdi_layer_pop_and_restore_active();  
}