一个自绘菜单,左边有一个侧边栏,
有一个菜单项A,拥有二级菜单
二级菜单显示在侧边栏的左边,可是当我鼠标移动到菜单项A时,显示二级菜单
我想选择二级菜单的菜单项,可是鼠标移动到侧边栏的时候,
二级菜单就自动消失了,导致了选择不了二级菜单项如何处理呢?
有一个菜单项A,拥有二级菜单
二级菜单显示在侧边栏的左边,可是当我鼠标移动到菜单项A时,显示二级菜单
我想选择二级菜单的菜单项,可是鼠标移动到侧边栏的时候,
二级菜单就自动消失了,导致了选择不了二级菜单项如何处理呢?
在MeasureItem(LPMEASUREITEMSTRUCT lpms)函数里:
if (pItem->m_bSideBar)
{
lpms->itemWidth = pItem->m_nSize ;//这边查看的时候是20 lpms->itemHeight = 0;
}
可是到了DrawItem( LPDRAWITEMSTRUCT lpds )里
CRect rcItem = lpds->rcItem;
if (pItem->m_bSideBar)
{
CRect rcClipBox;
dc.GetClipBox(rcClipBox);
// 绘制菜单标题栏
CRect rc = rcItem;//这边宽度已经是170了
rc.top = rcClipBox.top;
rc.bottom = rcClipBox.bottom;
DrawSideBar(&dc, rc, pItem->m_hIcon, pItem->m_strText);
}
这边的rcItem 的宽度并不是MeasureItem设置的pItem->m_nSize值了,
其他的正常为什么就绘制这个pItem->m_bSideBar时不可以呢
为什么会这样,奇怪