Я пишу программу для блокнота в MS C ++ 2010 Express с Win32. Пока что каждый раз, когда пользователь открывает или сохраняет документ, он обновляет строку состояния с сохраненным / открытым именем файла. Я также хочу изменить строку состояния на текущее имя файла каждый раз, когда активируется другой MDI. Как бы я это сделал?
Ваши MDI дочерние окна получат WM_MDIACTIVATE
сообщения всякий раз, когда изменяется их состояние активации — вам просто нужно каким-то образом передать это уведомление обратно в окно верхнего уровня (возможно, с помощью специального сообщения — вы могли бы даже отправить имя файла одновременно), чтобы получить его для обновления статуса бар.
Кстати, концепция MDI более или менее устарела, и Microsoft не рекомендует использовать ее в новых приложениях:
Многим новым и промежуточным пользователям трудно научиться использовать MDI
Приложения. Поэтому вы должны рассмотреть другие модели для вашего
пользовательский интерфейс. Тем не менее, вы можете использовать MDI для приложений, которые не
легко вписывается в существующую модель
Для приложения типа блокнота «современный» способ сделать это — через интерфейс с вкладками.
Это то, что вам нужно.
Отправьте WM_MDIGETACTIVE текущему клиенту, чтобы получить активного клиента.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms644915%28v=vs.85%29.aspx