在没有复选框的情况下创建弹出窗口CMenu

时间:2015-05-12 18:11:33

标签: c++ visual-studio-2010 mfc windows-forms-designer cmenu

我正在Visual Studio 2010中创建一个CMenu,MFC。我有一个工作的CMenu,当用户右键单击对话框时出现。我似乎找不到一种方法来创建菜单选择没有一个复选框的位置。在Visual Studio的设计器中,我的菜单如下所示:

Checkbox

enter image description here

我希望删除该区域的复选标记。在我的应用程序中,我的菜单如下所示:

enter image description here

有没有办法删除“更改选项”左侧的这个小方框?

更新:不确定这会有所帮助,但这是我创建CMenu的代码:

CMenu menu;
VERIFY(menu.LoadMenu(IDR_MENU1));
CMenu* pPopup = menu.GetSubMenu(0);
ASSERT(pPopup != NULL);
CWnd* pWndPopupOwner = this;
while (pWndPopupOwner->GetStyle() & WS_CHILD)
            pWndPopupOwner = pWndPopupOwner->GetParent();
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, screenPoint.x, screenPoint.y,
            pWndPopupOwner);

1 个答案:

答案 0 :(得分:2)

您必须使用所有者绘制菜单。弹出菜单始终(默认情况下)为复选标记位图分配空间。使用所有者绘制将允许您使用CMenu::MeasureItem()CMenu::DrawItem()来自定义菜单对象的大小和绘图行为。