Имена, используемые MFC
Имена, используемые MFC
Библиотека классов содержит огромное количество классов, структур, констант и т. д. Чтобы сделать исходный текст приложений MFC более легким для понимания, принято использовать ряд соглашений для используемых имен и комментариев.
Названия всех классов и шаблонов классов библиотеки MFC начинаются с заглавной буквы C. Например, CWnd, CMenu, CArray – это классы. Когда вы наследуете собственные классы от классов MFC, вы можете давать им любые имена. Рекомендуется называть их как и классы MFC с заглавной буквы C. Это сделает исходный текст приложения более ясным для понимания.
Чтобы отличать элементы данных, входящие в класс, от простых переменных, их имена принято начинать с префикса m_. Названия методов классов, как правило специально не выделяются, но их обычно пишут с заглавной буквы.
Библиотека MFC включает помимо классов, набор служебных функций. Названия этих функций начинаются с символов Afx, например AfxGetApp, AfxGetAppName, AfxGetMainWnd. Символы AFX являются сокращением от словосочетания Application FrameworkX, означающего основу приложения, его внутреннее устройство.
Символы AFX встречаются не только в названии функций MFC. Многие константы, макрокоманды и другие символы начинаются с этих символов. В общем случае Afx является признаком, по которому вы можете определить принадлежность того или иного объекта (функции, переменной, ключевого слова или символа) к библиотеке MFC.
В процессе создания приложения MFC AppWizard и ClassWizard могут определять идентификаторы ресурсов, идентификаторы для справочной системы и т. д. При этом, для идентификаторов различного типа используются разные префиксы:
Префикс Представляет идентификаторы HID_ Контекстной подсказки для команд HIDD_ Контекстной подсказки для диалоговых панелей ID_ Строк меню и кнопок панелей управления IDB_ Растровых изображений bitmap IDC_ Курсоров IDC_ Органов управления диалоговых панелей IDD_ Шаблонов диалоговых панелей IDI_ Пиктограмм IDP_ Строковых ресурсов, используемые в диалоговых панелях message box для отображения приглашения IDR_ Приложение может иметь несколько ресурсов различного типа с одинаковыми идентификаторами. Для таких идентификаторов используют префикс IDR_ IDS_ Строковых ресурсов IDOK, IDCANCEL Стандартные идентификаторы для кнопок OK и Cancel диалоговых панелейКогда приложение разрабатывается средствами MFC AppWizard и ClassWizard, они размещают в исходном тексте приложения комментарии следующего вида:
//{{AFX_
…
//}}AFX_
Такие комментарии образуют блок кода программы, который управляется только средствами MFC AppWizard и ClassWizard. Пользователь не должен вручную вносить изменения в этом блоке. Для этого необходимо использовать средства ClassWizard.
Чтобы подчеркнуть особое положение программного кода, заключенного в комментарии //{{AFX_, он отображается серым цветом. Это еще раз напоминает пользователю, о том, что он не должен вручную вносить изменения в этот код. В следующей таблице представлено краткое описание некоторых блоков //{{AFX_.
Блок Включает //{{AFX_DATA //}}AFX_DATA Объявление элементов данных класса. Используется в описании классов диалоговых панелей //{{AFX_DATA_INIT //}}AFX_DATA_INIT Инициализация элементов данных класса. Используется в файле реализации классов диалоговых панелей //{{AFX_DATA_MAP //}}AFX_DATA_MAP Макрокоманды DDX, предназначенные для связывания элементов данных класса и органов управления диалоговых панелей. Используется в файле реализации классов диалоговых панелей //{{AFX_MSG //}}AFX_MSG Описание методов, которые предназначены для обработки сообщений. Этот блок используется при описании класса //{{AFX_MSG_MAP //}}AFX_MSG_MAP Макрокоманды таблицы сообщений класса. Используются совместно с AFX_MSG //{{AFX_VIRTUAL //}}AFX_VIRTUAL Описание переопределенных виртуальных методов класса. Блок AFX_VIRTUAL используется при описании классаМы перечислили далеко не все блоки //{{AFX_. Существует еще целый ряд блоков, относящихся к реализации технологии OLE и использованию баз данных.
Когда вы будете изучать описание классов приложения, созданных средствами MFC AppWizard и ClassWizard, вы заметите ряд комментариев, разделяющих элементы класса на несколько категорий. Описание этих комментариев мы привели в следующей таблице.
Комментарий После комментария размещаются // Constructors Конструкторы класса и методы, используемые для инициализации объектов класса. Как правило, элементы класса размещенные в этой секции определены с ключевым словом public // Attributes Элементы данных класса, и методы для доступа к ним (свойства класса). Как правило, элементы класса размещенные в этой секции определены с ключевым словом public // Operations Виртуальные и невиртуальные методы, используемые для выполнения операций над объектами класса. Как правило элементы класса размещенные в этой секции определены с ключевым словом public // Overridables Здесь расположены виртуальные методы, которые вы можете переопределить в порожденных классах. Как правило, элементы класса размещенные в этой секции определены с ключевым словом protected. В большинстве случаев, названия виртуальных методов класса начинается с символов On // Implementation Методы и элементы данных, относящиеся к внутреннему устройству класса – реализации класса. Как правило, элементы класса размещенные в этой секции определены с ключевым словом protected или private // Dialog Data Элементы данных, класса диалоговой панели, связанные с органами управленияДля некоторых классов, используются и другие комментарии, например, // Advanced Overridables и т. д.
MFC AppWizard и ClassWizard помогают вам разрабатывать приложение. Они создают все классы и методы, необходимые для его работы. Вам остается дописать к ним свой код. В тех местах, где вы можете вставить этот код, MFC AppWizard и ClassWizard, как правило, помещают комментарий // TODO:.