MFC의 CMENU에 하위 메뉴를 추가하는 방법은 무엇입니까?
문제
메인 메뉴 표시 줄에 cmenu를 사용하는 MFC 앱이 있습니다.
하위 메뉴를 성공적으로 만들 수 없었습니다.
파일의 첫 번째 레벨, 편집,보기 등과 하위 메뉴를 가질 수 있지만 해당 메뉴 중 하나에서 하위 메뉴를 만들 수는 없습니다.
예를 들어, 파일-> 최근 항목->로 가고 싶습니다.하위 메뉴의 항목 목록
VS의 리소스 편집기를 사용하여 쉽게 할 수 있지만 동적으로 수행해야합니다.
CMENU에서 올바른 클래스를 사용하고 있습니까? 무엇을 시도 해야하는지에 대한 제안이 있습니까?
괜찮은 튜토리얼을 찾지 못했습니다. 나를 올바른 것을 향하게하는 것조차도 도움이 될 것입니다.
해결책
리소스 편집기를 사용하여 하나의 자리 표시 자 항목이 포함 된 하위 메뉴를 추가하십시오. 그런 다음이 하위 메뉴에 대한 참조를 프로그래밍 방식으로 잡고 항목을 추가하고 자리 표시 자 항목을 삭제할 수 있습니다.
CMenu *subMenu = mainMenu.GetSubMenu( menuPosition );
if( subMenu )
{
for( unsigned i = 0; i < stringArray.size(); i++ )
{
subMenu->AppendMenu( MF_STRING, 400 + i, stringArray[i]);
}
subMenu->DeleteMenu( ID_SUBMENU_PLACEHOLDER, MF_BYCOMMAND );
}
다른 팁
오늘도 같은 일을해야했습니다. 저는 기능 팩 (새로운 UI 재료)으로 VS2008에 있었고 샘플을보고 있었고 메뉴 항목을 동적으로 추가하는 방법에 대한 샘플이 있습니다 (http://msdn.microsoft.com/en-us/library/bb983167.aspx)
cframewndex :: onshowpopupmenu 메소드를 무시해야합니다.
맥스.
제휴하지 않습니다 StackOverflow