我可以肯定没有默认的消息响应函数,但所有刚创建的菜单却被激活。
而且CCmdUI也无效了,
void CMainScreenView::OnUpdateOff(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(false);
}void CMainScreenView::OnUpdateOn(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(false);
}
以上的代码我用断点观察确实执行了,但却没有效果,请问这是为什么呀!
你们有没有碰见过这种现像,谢了。
而且CCmdUI也无效了,
void CMainScreenView::OnUpdateOff(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(false);
}void CMainScreenView::OnUpdateOn(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(false);
}
以上的代码我用断点观察确实执行了,但却没有效果,请问这是为什么呀!
你们有没有碰见过这种现像,谢了。
//{{AFX_MSG_MAP(CMainScreenView)
ON_WM_ERASEBKGND()
ON_WM_RBUTTONDOWN()
ON_COMMAND(ID_CLEARBKGND, OnClearbkgnd)
ON_COMMAND(ID_UNFREEZE, OnUnfreeze)
ON_WM_DESTROY()
ON_COMMAND(ID_FREEZE, OnFreeze)
ON_COMMAND(ID_PRINTFREEZE, OnPrintfreeze)
ON_WM_CTLCOLOR()
ON_CBN_SELCHANGE(IDC_PHYBEDNO, OnSelchangePhybedno)
ON_WM_TIMER()
ON_MESSAGE(WM_MY_CHANGESCREEN, OnChangeBedNo)
ON_WM_CONTEXTMENU()
ON_COMMAND(ID_MENUCOLOR, OnMenucolor)
ON_UPDATE_COMMAND_UI(ID_MENUCOLOR, OnUpdateMenucolor)
ON_COMMAND(ID_MENUEGC, OnMenuegc)
ON_UPDATE_COMMAND_UI(ID_MENUEGC, OnUpdateMenuegc)
ON_COMMAND(ID_MENUHR, OnMenuhr)
ON_UPDATE_COMMAND_UI(ID_MENUITEMDELETE, OnUpdateMenuitemdelete)
ON_COMMAND(ID_MENUNIPB, OnMenunipb)
ON_UPDATE_COMMAND_UI(ID_MENUNIPB, OnUpdateMenunipb)
ON_COMMAND(ID_MENURR, OnMenurr)
ON_UPDATE_COMMAND_UI(ID_MENURR, OnUpdateMenurr)
ON_COMMAND(ID_MENUSPO2, OnMenuspo2)
ON_UPDATE_COMMAND_UI(ID_MENUSPO2, OnUpdateMenuspo2)
ON_COMMAND(ID_MENUTEMP1, OnMenutemp1)
ON_UPDATE_COMMAND_UI(ID_MENUTEMP1, OnUpdateMenutemp1)
ON_COMMAND(ID_MENUTEMP2, OnMenutemp2)
ON_UPDATE_COMMAND_UI(ID_MENUTEMP2, OnUpdateMenutemp2)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
{
pCmdUI->SetCheck(false);
}
但没有效果
我的视图是从CFromView派生的。
我用下面的代码
pPopup->TrackPopupMenu(TPM_LEFTALIGN |TPM_LEFTBUTTON,
point.x,point.y,
this,NULL);
出现此问题
用下面的代码则没有问题
pPopup->TrackPopupMenu(TPM_LEFTALIGN |TPM_LEFTBUTTON,
point.x,point.y,
AfxGetMainWnd(),NULL);
请问这是为什么,请大家告诉我,谢谢大家。
如果两个菜单的ID分别是:ID_ON, ID_OFF 把以下映射加进试一试:
ON_COMMAND(ID_ON, OnOn)
ON_UPDATE_COMMAND_UI(ID_ON, OnUpdateOn)
ON_COMMAND(ID_OFF, OnOff)
ON_UPDATE_COMMAND_UI(ID_OFF, OnUpdateOff)
huaboy408(闭关修练) 说的应该是对的。
但为会么用AfxGetMainWnd()就可以呢,不会出现以上现像