Microsoft Visual C++ и MFC. Программирование для Win95 и WinNT

         

Имена, используемые 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:.


Содержание раздела