2013-02-10 6 views
0

표시되기 전에 수정하고 싶은 팝업 메뉴가 있습니다. 실제로 메뉴 항목의 문자열을 잘 수정할 수 있습니다. 문제는 수정 된 메뉴 항목을 클릭 할 때 아무 일도 일어나지 않아 쓸모 없게 만듭니다.메뉴 항목 수정하기

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

CWnd* pWndPopupOwner = this; 
while(pWndPopupOwner->GetStyle() & WS_CHILD) 
    pWndPopupOwner = pWndPopupOwner->GetParent(); 

// modify string 
pPopup->ModifyMenu(1, MF_BYPOSITION | MF_STRING, NULL, oss.str().c_str()); 

pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, pWndPopupOwner); 

답변

0

ModifyMenu에 대한 귀하의 호출 (세 번째 인수를 통해) 제로 메뉴의 ID를 설정하는 것입니다. ID를 동일하게 유지해야합니다.

어색한 점이 있다면 SetMenuItemInfo API를 사용하면 ID를 변경하지 않고 문자열을 변경할 수 있습니다.

+0

훌륭해. 고마워. – mnoergaard