Я наткнулся на соответствующее падение ямы, которая покажет скрытый основной кадр без вашего согласия:
Всякий раз, когда фокус для дочернего окна в приложении MDI изменяется (например, из-за щелчка правой кнопкой мыши в нем), вызывается функция CMDIChildWnd::OnMDIActivate
, которая, в свою очередь, показывает главное меню (даже если оно было удалено или уничтожено ранее). ) приложения MDI.
Это работает в основном путем добавления сохраненного основного руководства из базовой переменной CMDIChildWnd m_hMenuShared
.
Быстрая и грязная попытка предотвратить это, установив m_hMenuShared в NULL (он защищен в CMDIChildWnd, так что для этого требуется собственный дочерний класс CMDIChildWnd) для всех дочерних фреймов.