int count = ::GetMenuItemCount(hmenu);
//值=6,一共6项,第2到第5项都是子菜单(0为第一项)
for(int nItem = 0; nItem < count; nItem++)
{
CString str;
str.Format("nItem=%d",nItem);
MessageBox(str);
if(iItem == ::GetMenuItemID(hmenu, nItem))
{
return;
}
}
问题是当菜单项是弹出菜单时,nItem不是正确得到位置值,比如应该是2,这时弹出子菜单,但是他却显示5,如何得到正确地位置呢?
//值=6,一共6项,第2到第5项都是子菜单(0为第一项)
for(int nItem = 0; nItem < count; nItem++)
{
CString str;
str.Format("nItem=%d",nItem);
MessageBox(str);
if(iItem == ::GetMenuItemID(hmenu, nItem))
{
return;
}
}
问题是当菜单项是弹出菜单时,nItem不是正确得到位置值,比如应该是2,这时弹出子菜单,但是他却显示5,如何得到正确地位置呢?
再做想做的操作就可以啦。
再做想做的操作就可以啦。
在循环的过程中,会得到所有的含有子菜单的项,而每个含有子菜单的项都没有ID(因为MF_POPUP),所以问题是如何才能判断到底是那个菜单项弹出了子菜单?