CMFCPopupMenu的使用,以及子菜单按钮的激活与变灰

本文详细介绍了如何在MFC应用程序中使用CMFCPopupMenu类来创建弹出菜单,并展示了如何激活子菜单按钮以及使它们变灰的方法。通过定义鼠标左键响应函数和消息映射,读者可以学会如何在特定位置创建和操作弹出菜单,以及如何根据需要启用或禁用菜单项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CMFCPopupMenu的使用,以及子菜单按钮的激活与变灰

1,定义鼠标左键响应函数

void CNetBroad3View::OnLButtonDown(CPoint point, int nUnitSn)
{
POINT ptScreen;
ptScreen = point;
ClientToScreen(&ptScreen);

CMenu menuPopUp;
menuPopUp.LoadMenuA(IDR_POPUP_EQUIP);  //IDR_POPUP_EQUIP菜单ID

CMenu* pPopup = menuPopUp.GetSubMenu(0);
ASSERT(pPopup != NULL);

if (pPopup)
{
CMFCPopupMenu* pPopupMenu = new CMFCPopupMenu;
pPopupMenu->SetAutoDestroy( TRUE );
if (pPopupMenu)
{
pPopupMenu->Create (this, ptScreen.x, ptScreen.y, pPopup->Detach (), TRUE);
pPopupMenu->SetForegroundWindow();
}
}
return TRUE;
}

2.激活子菜单按钮,首先定义函数

afx_msg void OnUpdateBroadBegin(CCmdUI* pCmdUI);
afx_msg void OnPopBroadBegin();

3.添加消息映射

ON_UPDATE_COMMAND_UI(IDC_BUTTON_PRINTINVOICE,OnEnablePrint)
ON_BN_CLICKED(IDC_BUTTON_PRINTINVOICE,OnPrintInvoice)

4.添加代码

void CNetBroad3View::OnUpdateBroadBegin(CCmdUI* pCmdUI)
{
pCmdUI->Enable(TRUE); //激活按钮
return;
}
void CNetBroad3View::OnPopBroadBegin()
{
MessageBox(_T("打印信息"));//按钮处理代码
return;
}

 

转载于:https://www.cnblogs.com/Iskysir/archive/2012/03/01/2376282.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值