Как показать доступные окна в меню Окно

У меня есть приложение MFC MDI, которое я недавно перенес с VS2003 на VS2008, и в то же время я перешел с Stingray Objective Studio 2006 v2 на v10.1. В предыдущих версиях моего приложения, если бы у меня было открыто более одного вида, меню "Окно" было бы заполнено перечисленным списком доступных видов, например, 1 MyViewA, 2 MyViewB и т. Д. Если бы у меня было большое количество видов, Я также получил бы пункт меню Windows..., чтобы позволить мне выбрать представление. Этого больше не происходит, что нарушает некоторые из моих регрессионных тестов уровня GUI. Я предполагаю, что эта функциональность была реализована либо CMDIFrameWnd, либо SECMDIFrameWnd, но я не смог найти ссылку на нее в документации. Кто-нибудь знает, как я могу вернуть эту функциональность обратно.

1 ответ

Первое, что я хотел бы сделать, это создать новое MDI-приложение с помощью ClassWizard и проверить наличие отсутствующей функциональности. Если это так, покопайтесь и посмотрите, сможете ли вы сказать, в чем дело. Одним из мест для поиска может быть ресурс меню для главного меню.

Если нет встроенной функциональности, чтобы обеспечить то, что вам нужно, вы можете динамически построить меню с помощью следующего псевдокода:

foreach registered CDocumentTemplate 
    foreach document
        foreach view
        {
            if (numberOfWindowMenuItems < 5)
            {
                Add menu item
            }
            else
            {
                Add "Windows..." menu item
                break all loops;
            }
Другие вопросы по тегам