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] != ' ') 
                u16OutLen--; 
            pu16StrBuf[u16OutLen] = '\r'; 
        } 
 
} 
 
调用如下: 
MApp_EventInfo_Display(EN_PF_Cur_Pres,(LPTSTR)u16StrBuffer); 
MApp_EventInfo_Display(EN_PF_Cur_Foll,(LPTSTR)u16StrBuffer); 
 
 
 |