Как показать доступные окна в меню Окно
У меня есть приложение 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;
}