分不在多,有人则名,一个关于弹出菜单的问题,困惑了我一上午,就是不可以,请教高人!

cy03ghw 2001-11-20 10:57:13
我使用MFC向导生成基于对话框的应用程序!,添加代码到对话框右键的消息处理函数!。
void CTimeDlg::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CMenu menu;

ClientToScreen(&point);
menu.LoadMenu(IDR_MENU1);
CMenu*popup = menu.GetSubMenu(0);
popup->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
ASSERT(popup->SetMenuItemBitmaps(0,MF_BYPOSITION,&bmp,&bmp));
//

//menu.DestroyMenu();
//popup->DestroyMenu();
//popup=NULL;
CDialog::OnRButtonDown(nFlags, point);
}

就是不可以,无法显示菜单文字前的图片,急急急。。。。
...全文
88 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sam1111 2001-11-20
  • 打赏
  • 举报
回复
popup->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
ASSERT(popup->SetMenuItemBitmaps(0,MF_BYPOSITION,&bmp,&bmp));
你应该将这两句的位置调一下:
ASSERT(popup->SetMenuItemBitmaps(0,MF_BYPOSITION,&bmp,&bmp));
popup->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);

TrackPopupMenu的时候菜单已经显示出来了,在设置图片当然没有了。
gameboy999 2001-11-20
  • 打赏
  • 举报
回复
再试试看

CBitmap bmap;
bmap.LoadBitmap(IDB_BITMAP1);
CMenu * pMenu = menu.GetSubMenu(0);
pMenu->SetMenuItemBitmaps(0,MF_BYPOSITION,&bmap,&bmap);
pMenu->InsertMenu(2,MF_SEPARATOR¦ MF_BYPOSITION);

bmap.Detach();
ricky460 2001-11-20
  • 打赏
  • 举报
回复
我以前遇到过这样的问题,发现如果我换了一个小一点的图片就可以...这可能和你图片的大小有关系.....你可以尽量试试不同大小的图片.....
xxb_xxb 2001-11-20
  • 打赏
  • 举报
回复
对不起,我全说错了,我没看清楚.
  • 打赏
  • 举报
回复
CMenu menu;
是不是因为menu是临时变量,当函数结束时,就是释放掉了。
xxb_xxb 2001-11-20
  • 打赏
  • 举报
回复
说错了,是popup->m_hMenu
xxb_xxb 2001-11-20
  • 打赏
  • 举报
回复
ASSERT(popup->SetMenuItemBitmaps(0,MF_BYPOSITION,&bmp,&bmp));中的0应该改为
menu.m_hMenu

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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