Я пишу блокнот в 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