2008/09/26

Popup Menu에 UpdateCommandUI Handler동작 시키기

이벤트 핸들러 없이 UpdateCommandUI Handler 만 있는 팝업 메뉴

이벤트 핸들러 없이 UpdateCommandUI Handler 만 있는 팝업 메뉴


메인 메뉴와는 다르게 팝업 메뉴에는 자동으로 UpdateCommandUI Handler 가 동작을 하지 않는다. 아래 내용을 팝업 메뉴에 UpdateCommandUI Handler 가 동작 하도록하는 코드이다.

void CtestView::OnRButtonUp(UINT nFlags, CPoint point){    CMenu menu;    menu.LoadMenu( IDR_POPUP );    CMenu* pPopup = menu.GetSubMenu( 0 );    // UpdateCommandUI Handler 호출    for (UINT i = 0; i < pPopup->GetMenuItemCount(); i++)     {         CCmdUI state;         state.m_nIndexMax = pPopup->GetMenuItemCount();         state.m_nIndex = i;         state.m_nID = pPopup->GetMenuItemID(i);         state.m_pMenu = pPopup;         state.DoUpdate(this, TRUE);     }     CPoint ptPopup = point;    ClientToScreen( &ptPopup );    pPopup->TrackPopupMenu( TPM_LEFTALIGN, ptPopup.x, ptPopup.y, this );    CView::OnRButtonUp(nFlags, point);}void CtestView::OnUpdateMypopupPopup1(CCmdUI *pCmdUI){    pCmdUI->Enable( TRUE );}void CtestView::OnUpdateMypopupPopup2(CCmdUI *pCmdUI){    pCmdUI->Enable( FALSE );}
코드적용 후 팝업 메뉴

코드적용 후 팝업 메뉴

Original Post : http://neodreamer-dev.tistory.com/175

No comments :

Post a Comment