为什么不相应右键菜单

zy0016 2004-07-06 08:21:12
打扰各位了,有个问题:
MFC里的,一个自定义类"ListBoxExt",继承自CListBox.
该MFC工程插入一个右键菜单,进入类向导之后提示为这个菜单选择一个类,选择"ListBoxExt",运行程序,菜单正常出现,在菜单上添加一项"删除",用类向导添加处理"删除"动作的处理过程,在这个过程中打断点,调试运行,菜单正常出现,包含"删除"这一项,单击这一项,断点不断,请问这是为什么?
...全文
90 8 点赞 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zy0016 2004-07-07
给分
  • 打赏
  • 举报
回复
zy0016 2004-07-07
虽然问题还没有解决,但是我非常感谢大家的帮助,这个问题我已经有了一点眉目,谢谢诸位.
  • 打赏
  • 举报
回复
zy0016 2004-07-06
菜单相关代码如下:
BEGIN_MESSAGE_MAP(CListCtrlExt, CListCtrl)
ON_WM_CONTEXTMENU()
//{{AFX_MSG_MAP(CListCtrlExt)
ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk)
ON_NOTIFY_REFLECT(NM_SETFOCUS, OnSetfocus)
ON_NOTIFY_REFLECT(NM_KILLFOCUS, OnKillfocus)
ON_COMMAND(ID_EDIT_CUT, OnEditCut)//菜单处理函数,ID_EDIT_CUT是一个菜单项的ID
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
......
void CListCtrlExt::OnEditCut()
{
// TODO: Add your command handler code here
AfxMessageBox("test");//选择菜单的这一项,可是什么反映也没有.
}
  • 打赏
  • 举报
回复
fanfyj 2004-07-06
up
  • 打赏
  • 举报
回复
zy0016 2004-07-06
当时确实是调试状态,没有点错按钮,菜单也正常出现.MFC也自动生成了相关的代码:
void CListCtrlExt::OnContextMenu(CWnd*, CPoint point)
{

// CG: This block was added by the Pop-up Menu component
{
if (point.x == -1 && point.y == -1){
//keystroke invocation
CRect rect;
GetClientRect(rect);
ClientToScreen(rect);

point = rect.TopLeft();
point.Offset(5, 5);
}

CMenu menu;
VERIFY(menu.LoadMenu(CG_IDR_POPUP_LIST_CTRL_EXT));

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, point.x, point.y,
pWndPopupOwner);
}
}
欧 对了,这个菜单所在的控件放置在一个属性页上面,继承的是CPropertyPage类,
class FindChineseFold : public CPropertyPage
是不是和属性页有关系啊?
  • 打赏
  • 举报
回复
adamx 2004-07-06
可能使消息映射不正确吧
  • 打赏
  • 举报
回复
蒋晟 2004-07-06
Track的时候指定让哪个窗口处理菜单命令?你可能需要转发菜单命令到ListBoxExt对象
  • 打赏
  • 举报
回复
Pipi0714 2004-07-06
确定你的删除菜单里面的程序是否执行,没有执行影射不正确,否则调试的时候不要点击叹号哪个按钮
  • 打赏
  • 举报
回复
相关推荐
发帖
界面
加入

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2004-07-06 08:21
社区公告
暂无公告