halleyhuang 发表于 2016-9-29 17:31:45

PF信息太长换行处理

PF信息太长会换行显示到下一行,但那样单词里面的字母就被拆开了,如下处理判断单词显示不下时在前面的空格处先换行。

void MApp_EventInfo_Display(SI_EIT_PF_Type ePFType,MS_U16*pu16StrBuf)
{
    MS_U16 u16Len = wcslen(pu16StrBuf);
    MS_U16 u16OutLen;
    RECT stRect;
    if(ePFType == EN_PF_Cur_Pres)
      memcpy(&stRect, &GETWNDINITRECT(HWND_TV_BANNER_CH_CURREN_EVENT), sizeof(RECT));       
    else
      memcpy(&stRect, &GETWNDINITRECT(HWND_TV_BANNER_CH_NEXT_EVENTEXT), sizeof(RECT));

   stRect.height = FONT_TYPE_VERYSMALL;

      MApp_ZUI_OSD_VfSmartDrawMaxCharNum(FONT_TYPE_VERYSMALL,
                                           (Rect*)&stRect,
                                           pu16StrBuf,
                                           eTextAlignLeft,
                                           GEFONT_FLAG_VARWIDTH | GEFONT_FLAG_GAP,
                                           2,
                                           0,
                                           &u16OutLen);

      if(u16OutLen < u16Len)
      {
            while(pu16StrBuf != ' ')
                u16OutLen--;
            pu16StrBuf = '\r';
      }

}

调用如下:
MApp_EventInfo_Display(EN_PF_Cur_Pres,(LPTSTR)u16StrBuffer);
MApp_EventInfo_Display(EN_PF_Cur_Foll,(LPTSTR)u16StrBuffer);


bean.yang 发表于 2016-10-18 11:32:48

:$
页: [1]
查看完整版本: PF信息太长换行处理