문제

메인 메뉴 표시 줄에 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 메소드를 무시해야합니다.

맥스.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top