Приложение DMENU
В приложении DMENU, имитирующем работу с документами (например, с текстами), мы использовали большинство описанных выше функций, предназначенных для динамического создания и изменения меню. Проект этого приложения не включает файл описания ресурсов и, соответственно, не использует шаблон меню.
Сразу после запуска приложения в полосе меню определены два временных меню - "File" и "Help" (рис. 1.15). В меню "File" вы можете использовать строки "New" и "Open", предназначенные, соответственно, для создания нового документа или загрузки документа из файла. Кроме этих двух строк вы можете выбрать строку "Exit", завершающую работу приложения. Строка "Demo Version" заблокирована и отмечена галочкой. Так как мы еще не научились работать с принтером, строки "Print", "Page Setup" и "Printer Setup" заблокированы и отображаются серым цветом.
Рис. 1.15. Исходный вид меню приложения DMENU
Пока вы не создали новый документ или не загрузили документ, созданный ранее, строки "Close", "Save", "Save as..." заблокированы. Так как документ не загружен, его нельзя закрыть или сохранить, поэтому соответствующие строки в меню отображаются серым цветом.
После того, как вы выберете строку "New" или "Open", внешний вид меню приложения изменится (рис. 1.16).
Рис. 1.16. Изменения в меню приложения DMENU
Так как приложение DMENU рассчитано на "работу" с одним документом, после загрузки документа строки "New" и "Open" блокируются. Для их разблокирования вы должны закрыть документ, выбрав строку "Close". В этом случае меню приложения примет исходный вид, представленный на рис. 1.15.
После загрузки документа в меню "File" разблокируются строки "Close", "Save" и "Save as...". Кроме этого, появляется новое временное меню "Edit", аналогичное меню "Edit" предыдущего приложения. Меню "Edit" присутствует в окне только тогда, когда загружен документ. Если документ не загружен, то редактировать нечего. В этом случае меню "Edit" не нужно.
Многие приложения Windows изменяют меню похожим образом. Внешний вид меню может зависеть от типа обрабатываемого документа, от используемых параметров и режимов (краткое меню, полное меню, расширенное меню и т. д.) или от текущего состояния документа.
Исходный текст главного файла приложения DMENU, реализующего описанный выше алгоритм изменения меню, представлен в листинге 1.5.