Nos项目 ChannelInfo添加SKIP和FAV的图标
1.需求:ChannelInfo在显示时,判断当前台位是否是FAV和Skip台位,在INFO页面显示相应图标。
2.做法:A:第一步在SkinTool里,ChannelInfo页添加显示FAV和Skip图标的HWND,(常规设置)
B:第二步在代码里判断当前台位属性是否为FAV或SKIP,根据状态动态显示对应图标。
3.流程:
上图描绘中case1里写动态判断当前台位的方法,返回一个对应台位状态的bitmap图片,case中的详细方法,请看第4点
图中标注的1的case和2中的绘图属性是联合使用的,如果2绘图属性没有添加或添加错误,那么1的case 是不会跑进去的。图中描绘的就是1case所属的方法MApp_ZUI_ACT_GetDynamicBitmap() 的流程
4.动态判断当前台位,返回对应台位状态图标。
上代码:
case HWND_CHINFO_EXT_FAV_IMG:
{
{
BOOLEAN bFav = FALSE;
MEMBER_SERVICETYPE bServiceType = E_SERVICETYPE_INVALID;
WORD wPosition = 0xFFFF;
if(IsSrcTypeATV(SYS_INPUT_SOURCE_TYPE(MAIN_WINDOW)))
{
bServiceType = E_SERVICETYPE_ATV;
wPosition = msAPI_CHPROC_CM_GetCurrentOrdinal(bServiceType,E_PROGACESS_INCLUDE_VISIBLE_ONLY);
}
// msAPI_CHPROC_CM_Get_Attr_Favor_ByOrdinal();
msAPI_CHPROC_CM_GetAttributeOfOrdinal(bServiceType, wPosition, &bFav, E_SERVICE_ATTR_FAVORITE, E_PROGACESS_INCLUDE_VISIBLE_ONLY);
if (bFav)
{
return E_BMP_IDLE_IMG_ICON_FAVORITE_FOCUS;
}
}
}