Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 - страница 5

Шрифт
Интервал

стр.

Шаблон меню

Для многооконного приложения в ресурсах проекта определены два меню с идентификаторами IDR_MAINFRAME и IDR_MULTITYPE. Приложение использует одно из этих меню, в зависимости от того, открыт документ или нет.

Меню с идентификатором IDR_MAINFRAME используется, если в приложении не открыт ни один документ. Как видите, идентификатор меню совпадает с идентификатором меню приложения с однооконным интерфейсом, однако строки этих меню различаются:

>//////////////////////////////////////////////////////////////// Меню IDR_MAINFRAME

>IDR_MAINFRAME MENU PRELOAD DISCARDABLE

>BEGIN

> POPUP "&File"

> BEGIN

>  MENUITEM "&New\tCtrl+N",    ID_FILE_NEW

>  MENUITEM "&Open...\tCtrl+O",ID_FILE_OPEN

>  MENUITEM SEPARATOR

>  MENUITEM "P&rint Setup...", ID_FILE_PRINT_SETUP

>  MENUITEM SEPARATOR

>  MENUITEM "Recent File",     ID_FILE_MRU_FILE1, GRAYED

>  MENUITEM SEPARATOR

> MENUITEM "E&xit",            ID_APP_EXIT

> END

> POPUP "&View"

> BEGIN

>  MENUITEM "&Toolbar",        ID_VIEW_TOOLBAR

>  MENUITEM "&Status Bar",     ID_VIEW_STATUS_BAR

> END

> POPUP "&Help"

> BEGIN

>  MENUITEM "&About Multi...", ID_APP_ABOUT

> END

>END

Меню, имеющее идентификатор IDR_MULTITYPE, отображается, когда пользователь создает новый документ или открывает документ, уже записанный в файле на диске.

Как видите, в этом меню определено временное меню Window, строки которого служат для управления MDI окнами приложения:

>//////////////////////////////////////////////////////////////// Меню IDR_MAINFRAME

>IDR_MAINFRAME MENU PRELOAD DISCARDABLE

>BEGIN

> POPUP "&File"

> BEGIN

>  MENUITEM "&New\tCtrl+N",     ID_FILE_NEW

>  MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN

>  MENUITEM SEPARATOR

>  MENUITEM "P&rint Setup...",  ID_FILE_PRINT_SETUP

>  MENUITEM SEPARATOR

>  MENUITEM "Recent File",      ID_FILE_MRU_FILE1, GRAYED

>  MENUITEM SEPARATOR

>  MENUITEM "E&xit",            ID_APP_EXIT

> END

> POPUP "&View"

> BEGIN

>  MENUITEM "&Toolbar",         ID_VIEW_TOOLBAR

>  MENUITEM "&Status Bar",      ID_VIEW_STATUS_BAR

> END

> POPUP "&Help"

> BEGIN

>  MENUITEM "&About Multi...",  ID_APP_ABOUT

> END

>END

Большинство строк меню приложения Multi имеет стандартные идентификаторы. Соответствующие им стандартные командные сообщения обрабатываются различными классами библиотеки MFC. Так, например, стандартное командное сообщение с идентификатором ID_FILENEW от строки New меню File, по умолчанию обрабатывается методом OnFileNew класса CWinApp. Мы уже рассказывали о стандартных командных сообщениях в 24 томе из серии “Библиотека системного программиста”. Более подробное описание стандартных командных сообщений вы можете найти в документации Microsoft Visual C++.

В этой книге мы посвятили меню приложений отдельную главу, которая называется “Меню, панели управления и панели состояния”. Дополнительную информацию об использовании меню вы можете получить в 13 томе серии “Библиотека системного программиста”.

Пиктограмма

В файле ресурсов приложения Multi определены две пиктограммы IDR_MULTITYPE и IDR_MAINFRAME. Каждая из этих пиктограмм содержит по два изображения размером 32×32 и 16×16 пикселов. Внешний вид пиктограмм соответствует пиктограммам, используемым приложением с однооконным интерфейсом. Для однооконного приложения пиктограмма, представляющая документ, называлась IDR_SINGLETYPE, а не IDR_MULTITYPE. Такая разница в названиях возникла исключительно из-за разницы в названиях проектов приложений:

>//////////////////////////////////////////////////////////////

>// Пиктограммы

>IDR_MAINFRAME ICON DISCARDABLE "res\\Multi.ico"

>IDR_MULTITYPE ICON DISCARDABLE "res\\MultiDoc.ico"

Пиктограмма IDR_MAINFRAME представляет приложение, когда оно минимизировано (рис. 1.4). Эта же пиктограмма отображается в левом верхнем углу главного окна приложения.

Рис. 1.4. Пиктограмма IDR_MAINFRAME


Пиктограмма IDR_MULTITYPE используется для представления документа с которым работает приложение (рис. 1.5). В отличие от приложения с однооконным интерфейсом, которое не использует эту пиктограмму, приложение с многооконным интерфейсом отображает пиктограмму IDR_MULTITYPE в левом верхнем углу окна документа.

Рис. 1.5. Пиктограмма IDR_MULTITYPE


стр.

Похожие книги