问一个关于CMenu弹出的问题,为何无法弹出呢?

kbsoft 2011-07-19 11:01:27
TrackPopup来弹出菜单,代码如下:
void ShowSubMenu(FAVORITE fav, int n)
{
CSimpleArray<FAVORITE> favorites = _Module.m_FavoriteConfig.GetFavoritesByNode(fav.Node);

CPoint point(m_Controls[n].rect.left, m_Controls[n].rect.bottom);
ClientToScreen(&point);

int nMenuHeight = ::GetSystemMetrics(SM_CYMENU);
int nScreenHeight = GetSystemMetrics(SM_CYFULLSCREEN);
int nMaxCount = (nScreenHeight - point.y - 50) / nMenuHeight;

CMenuHandle menu;
menu.CreatePopupMenu();

menu.AppendMenu(MF_STRING, 4000 + m_MenuFavorites.GetSize(), _T("收藏到此文件夹下"));
menu.AppendMenu(MF_STRING, 5000 + m_MenuFavorites.GetSize(), _T("打开此文件夹下所有链接"));
menu.AppendMenu(MF_SEPARATOR);
m_MenuFavorites.Add(fav);

if (favorites.GetSize() >= 0)
{
for (int i = 0; i < favorites.GetSize(); i++)
{
DWORD dwExtraAttr = ((i + 4) % nMaxCount == 0) && _Module.m_Config.GetFavoriteMultiCol() ? MF_MENUBARBREAK : 0;
FAVORITE * pFav = &favorites[i];

CString title = pFav->Title.GetLength() > 30 ? pFav->Title.Left(30) + _T("...") : pFav->Title;
if (pFav->IsFolder)
{
m_MenuFavorites.Add(*pFav);
AddSubMenu(menu, dwExtraAttr, pFav, 2);
}
else
{
menu.AppendMenu(MF_STRING | dwExtraAttr, 1000 + m_MenuFavorites.GetSize(), title);
m_MenuFavorites.Add(*pFav);
}
}

MENUINFO menuInfo;
menuInfo.cbSize = sizeof(MENUINFO);
menuInfo.dwStyle = MNS_DRAGDROP;
menuInfo.fMask = MIM_STYLE;
menu.SetMenuInfo(&menuInfo);

UINT uCmd = menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_LEFTALIGN | TPM_RETURNCMD, point.x, point.y, m_hWnd);

menu.DestroyMenu();
}

}


这样可以正常显示菜单,但是如果我现在想实现按住鼠标后(不放开),就是拖动,移开菜单后,然后关闭这个菜单,鼠标移动到另外的菜单上,此时鼠标未释放,但再也打不开任何菜单了,不知有什么方法可以做到呢?

我想实现鼠标拖拽到不同的菜单上时,弹出不同的菜单(鼠标不释放的情况下)
...全文
106 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdl2005lyx 2011-08-12
  • 打赏
  • 举报
回复
楼主,代码的问题别人很难帮你查,你只能自己慢慢调试,
不过,给你提个思路:

不要动态参加菜单,直接在资源那边静态创建!
向立天 2011-08-12
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
changkai2009 2011-07-19
  • 打赏
  • 举报
回复
初学者,你这比较高深看不懂=-=!
kbsoft 2011-07-19
  • 打赏
  • 举报
回复
就是类似浏览器里收藏栏菜单内,拖动菜单项到另外一个菜单里的效果。
快乐鹦鹉 2011-07-19
  • 打赏
  • 举报
回复
实在看不懂你在问什么......
lironghua2012 2011-07-19
  • 打赏
  • 举报
回复
他是想把菜单做成浮动窗口一样,可以任意地拖动位置

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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