IDISPLAY_FillRect()为什么没有把背景色置为相应的颜色

lyydaisy 2009-07-29 11:13:11
我的代码如下:
1 IDISPLAY_FillRect(pApp->a.m_pIDisplay,&nRect,clrFill);
IDISPLAY_Update(pApp->a.m_pIDisplay);

if(ISHELL_CreateInstance(pApp->a.m_pIShell, cl,
(void**)(&pApp->m_MainMenu)) != SUCCESS)
return FALSE;
2

pMenuCtl = (IMenuCtl*)pApp->m_MainMenu;
IMENUCTL_Reset( pMenuCtl );
IMENUCTL_SetActive(pMenuCtl, FALSE );
IMENUCTL_SetTitle(pMenuCtl,0,0,nTitle);

/*add items*/
3
IMENUCTL_SetStyle(pMenuCtl,&nNormal,&nSel);
IMENUCTL_SetProperties( pMenuCtl, IMENUCTL_GetProperties( pMenuCtl ) & ~(MP_ICON_TEXT_TOP),MP_WRAPSCROLL );//etc
SETAEERECT( &nRect, 0, 0, pApp->m_nScrWidth, pApp->m_nScrHeight );
IMENUCTL_SetRect( pMenuCtl, &nRect );
IMENUCTL_SetActive( pMenuCtl, TRUE );

4

将 IDISPLAY_FillRect(pApp->a.m_pIDisplay,&nRect,clrFill);
IDISPLAY_Update(pApp->a.m_pIDisplay);
放在代码1、2、3位置则不显示颜色,放在4位置,则覆盖全屏,只有在按上下键选择菜单时才能出现菜单项。这是为什么?
我要是只想出现用IDIISPLAY_FillRect()设置背景色,菜单项照样显示的话,该怎么改代码呢?
...全文
1921 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingfenggg 2009-08-03
  • 打赏
  • 举报
回复
1 IDISPLAY_FillRect(pApp->a.m_pIDisplay,&nRect,clrFill);
IDISPLAY_Update(pApp->a.m_pIDisplay);
要保证界面刷新时,首先调用这个函数,然后是画其他控件,nRect是不是设置的不对。
Bryan2Lee 2009-08-03
  • 打赏
  • 举报
回复
Menu和你IDsiplay设置的Rect重叠了
tx040316 2009-07-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wireless_com 的回复:]
SETAEERECT( &nRect, 0, 0, pApp->m_nScrWidth, pApp->m_nScrHeight );
IMENUCTL_SetRect( pMenuCtl, &nRect );
覆盖了全屏,所以没有显示出背景色
[/Quote]

2楼说得对,你SETAEERECT的大小就是全屏了。你把pApp->m_nScrWidth改成pMenuCtl的大小就行了。
  • 打赏
  • 举报
回复
SETAEERECT( &nRect, 0, 0, pApp->m_nScrWidth, pApp->m_nScrHeight );
IMENUCTL_SetRect( pMenuCtl, &nRect );
覆盖了全屏,所以没有显示出背景色
toadman 2009-07-30
  • 打赏
  • 举报
回复
用IMENUCTL_SetColors 可以设置菜单项的背景色。如果仍然不满足就用IMENUCTL_SetOwnerDrawCB 自定义你的绘制风格。

3,134

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧