2008/09/26
Popup Menu에 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 );
}
코드적용 후 팝업 메뉴
Labels:
popup menu
,
TistoryOldPost
,
UpdateCommandUI Handler
,
UpdateUI Handler
,
Visual C++
,
팝업메뉴
Subscribe to:
Post Comments
(
Atom
)
No comments :
Post a Comment