ON_UPDATE_COMMAND_UI_RANGE(ID_SHAPE_CIRCLE,ID_SHAPE_TRIANGLE,OnUpdateZoom)
void CMyShapeView::OnRButtonUp(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CMenu rMenu;
rMenu.LoadMenu(IDR_MYMENU);
CMenu* submenu;
submenu=rMenu.GetSubMenu(1);
ClientToScreen(&point);
::TrackPopupMenu(submenu->GetSafeHmenu(), TPM_LEFTALIGN | TPM_RIGHTBUTTON | TPM_VERTICAL,
point.x,point.y, 0, m_hWnd, NULL);
CView::OnRButtonUp(nFlags, point);
}
void CMyShapeView::OnUpdateZoom( CCmdUI* pCmdUI )
{
if (pCmdUI->m_nID == nShape - 2 + ID_SHAPE_CIRCLE)
{
pCmdUI->SetCheck();
}
else
{
pCmdUI->SetCheck(0);
}
}
void CMyShapeView::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu)
{
CView::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu);
int nCount = pPopupMenu->GetMenuItemCount();
CCmdUI cmd;//创建自动更新类
cmd.m_pMenu = pPopupMenu;
cmd.m_nIndexMax = nCount;//MSDN上未介绍的成员变量
for (int i = 0; i < nCount; i ++)
{
UINT nID = pPopupMenu->GetMenuItemID(i);
if (nID != 0)//如果不是分隔符
{
cmd.m_nIndex = i;
cmd.m_nID = nID;
cmd.DoUpdate(this, TRUE);//MSDN上未介绍的成员函数,可以找到自动更新宏,传入CCmdUI指针,来执行自动更新
}
}
// TODO: 在此处添加消息处理程序代码
}
//绘制三角形 并填充
case 4:
CPoint poly[6];
poly[0] = CPoint(200,260);
poly[1] = CPoint(260,260);
poly[2] = CPoint(230,230);
pDC->MoveTo(200,260);
pDC->LineTo(260,260);
pDC->LineTo(230,230);
pDC->LineTo(200,260);
pDC->Polygon(poly,3);
break;