You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将CMenu完整复制到CMFCPopupMenu并保留所有元素及位图?

问题:CMFCPopupMenu无法显示CMenu中的位图

我尝试使用CMFCPopupMenu::Create()方法将CMenu的内容复制到CMFCPopupMenu中,所有菜单项均正常显示,但位图无法显示。将该CMenu插入工具栏时,位图可以正常显示。

CMenu实现代码片段

CMenu* TestCMenu = new CMenu();
TestCMenu->CreateMenu();
    
// 创建子菜单
CMenu* subMenu1 = new CMenu();

// 创建弹出式子菜单
subMenu1->CreatePopupMenu();


HBITMAP hBitMap = (HBITMAP)LoadImage(NULL, L"SampleBitmap.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);

subMenu1->AppendMenu(MF_STRING, ID_NEW, TEXT("New"));
subMenu1->SetMenuItemBitmaps(ID_NEW, MF_STRING, CBitmap::FromHandle(hBitMap), CBitmap::FromHandle(hBitMap));

subMenu1->AppendMenu(MF_STRING, ID_EXIT, TEXT("Exit"));
subMenu1->SetMenuItemBitmaps(ID_EXIT, MF_STRING, CBitmap::FromHandle(hBitMap), CBitmap::FromHandle(hBitMap));

SetMenu(TestCMenu);

CMenu在工具栏中显示正常(带位图)

CMFCPopupMenu实现代码片段

CMFCPopupMenu* TestCMFCPopMenu = new CMFCPopupMenu;
TestCMFCPopMenu->SetAutoDestroy(FALSE);
TestCMFCPopMenu->Create(this, 1000,400, subMenu1->GetSafeHmenu());

使用CMFCPopupMenu时无位图显示

可以看到第二张图中位图未显示,请问我哪里操作有误?


内容的提问来源于stack exchange,提问作者latosvarun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 19:52:37