Студия web-дизайна Хостмэйк
Наши работыКонтактыО компанииОтзывыГлоссарийСтатьи

Глава 2. Создание приложений на базе библиотеки классов MFC

Статьи Программирование на С/С++

Создание приложений на базе библиотеки классов MFC



    Для того чтобы написать какое-либо приложение, прежде всего необходимо
    создать проект. Разработчики фирмы size=2>Microsoft постарались (уже давно) и создали специальные мастера,
    которые позволяют — после ответов на ряд вопросов — получить работающий каркас
    приложения. Вам остается только наполнить его конкретным содержанием. Вызвав
    диалог New, выберите в нем тип приложения
    MFC AppWizard (exe), а в поле face="Courier New" size=2> Project Name — имя создаваемого приложения
    FrameWork. После нажатия кнопки face="Courier New" size=2>ОК запустится мастер size=2>AppWizard, и вы увидите его первое окно (рис. 2.1).



    .........................................................1

    Рис. 2.1. Первое окно мастера size=2>AppWizard


    В этом окне представлены все три основных типа приложений face="Courier New" size=2>Windows: однодокументное, многодокументное и на
    базе диалога.


    Примечание 


    Обратите внимание на флажок Document/View architecture
    support? (Нужна поддержка архитектуры документ/представление?), которого вы не
    увидите в версиях Visual C++ ниже 6.0. В них приходилось вручную удалять
    фрагменты созданного каркаса приложения, поскольку зачастую автоматически
    подключаемая поддержка этой архитектуры (безусловно, очень удобной и полезной)
    не нужна.


    Сбросьте флажок Document/View architecture
    support
    ? и выберите переключатель Single
    documen
    t, поскольку нас сейчас интересуют самые основы


    Примечание 


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


    Смело дважды нажимайте кнопку Next,
    чтобы перейти к третьему окну мастера, поскольку во втором окне задается
    поддержка для работы с базами данных. В третьем окне сбросьте флажок face="Courier New" size=2>ActiveX Controls (элементы управления face="Courier New" size=2>ActiveX) и переходите к следующему окну (рис.
    2.2), в котором предлагается выбор некоторых дополнительных возможностей.


    Примите установки, предложенные по умолчанию, и нажмите кнопку Advanced...
    (Дополнительно...), чтобы выбрать стили окна (рис. 2.3).


    Для демонстрации влияния этих стилей, которые подробно будут описаны ниже,
    установим флажок Minimized (Свернутое).



    .........................................................2

    Рис. 2.2. Четвертое окно мастера size=2>AppWizard



    .............................................................3

    Рис. 2.3. Установка стиля основного окна приложения


    Вернитесь к четвертому окну мастера и можете нажать кнопку face="Courier New" size=2>Finish (Готово), поскольку в остальных окнах мы
    принимаем установки по умолчанию. На экране появится окно с информацией о
    проекте (рис. 2.4).


    Примечание 


    Заданное вами имя проекта служит основой для имени класса
    приложения, изменить которое можно в пятом окне мастера.



    ....................................................................4

    Рис. 2.4. Информация о вновь созданном проекте


    После того как вы нажмете кнопку ОК,
    мастер создаст для вас каркас приложения и завершит свою работу.


    Постройте исполняемый файл, выполнив команду size=2>Build, и запустите его. На экране ничего не изменится, но на
    панели задач появится кнопка минимизированного приложения. Приложение face="Courier New" size=2>FrameWork строит обычное, традиционное окно,
    хорошо знакомое всем пользователям системы size=2>Windows (рис. 2.5).


    Его можно перемещать по экрану, закрыть, минимизировать (уменьшить до размера
    пиктограммы) или максимизировать (увеличить до размеров экрана), а также
    изменять его размер. Основное назначение этого примера заключается в том, что он
    позволяет нам познакомиться с основными принципами, которые положены в основу
    построения программ на базе библиотеки классов size=2>MFC.


    Программа имеет три класса объектов: size=2>CFrameWorkApp, CMainWnd и
    CChildWnd. Первый позволяет создать
    объект "приложение", второй — объект "фрейм окна", и третий — сам объект "окно".


    Каждое приложение, использующее библиотеку size=2>MFC, может содержать только один объект "приложение", который
    конструируется вместе с другими глобальными объектами C++ (определение — face="Courier New" size=2>CFrameWorkApp theApp) и уже доступен, когда
    Windows вызывает функцию face="Courier New" size=2>WinMain. На данном этапе знакомства — это самый
    существенный момент для успешного программирования под size=2>Windows на базе MFC.


    Отвлечемся немного от основной темы, чтобы рассмотреть вспомогательные, но
    тесно связанные с программированием на Visual C++ вопросы.


     Примечание 


    Библиотеку классов MFC можно использовать не только для
    написания полноценных Windows-приложений, но и в консольных приложениях.



    ..........................................................5

    Рис. 2.5. Основное окно приложения size=2>FrameWork



    Соглашения об именах библиотеки MFC


    В качестве префикса, обозначающего имя класса, библиотека face="Courier New" size=2>MFC использует заглавную букву С от слова
    "class" (класс), за которым идет имя,
    характеризующее его назначение. Например, size=2>CWinApp — класс, определяющий приложение, size=2>CWnd — базовый класс всех оконных объектов, face="Courier New" size=2>CDialog — класс окон диалога и т. д. Мы также
    будем придерживаться этого соглашения в приводимых примерах. Например, программа
    FrameWork содержит определения трех классов: size=2>CFrameWorkApp, CMainFrame и
    CChildWnd.


    Для имен методов классов используется три способа. При первом способе имя
    объединяет глагол и существительное, например, size=2>Loadlcon (Загрузить пиктограмму) или size=2>DrawText (Нарисовать текст). При втором, имя метода состоит только
    из существительного, например, DialogBox
    (Блок диалога). Для функций, предназначенных для преобразования одного типа в
    другой, обычными являются такие имена, как size=2>XtoY(из X в Y).


    Для членов классов библиотеки MFC
    принят следующий способ назначения имен: обязательный префикс face="Courier New" size=2>m_ (от size=2>class member — член
    класса), затем идет префикс, характеризующий тип данных, и завершается все
    содержательным именем переменной, например, size=2>m_pMainWnd, где р
    префикс, описывающий указатель (для переменных не членов класса префикс face="Courier New" size=2>m_ не используется, чтобы можно было отличить
    обычные переменные от элементов любых классов, а не только классов библиотеки
    MFC). В своих примерах я придерживаюсь
    аналогичного способа формирования имен, и вам рекомендую поступать также.



    Включаемые файлы


    Если вы посмотрите начало любого файла, то заметите, что одной из первых в
    них стоит строка #include " face="Courier New" size=2>stdafx.h". Этот включаемый файл служит для
    подключения к программе необходимых ей библиотечных файлов. Когда вы будете
    писать большие приложения, вам обязательно потребуется использование заранее
    откомпилированных заголовочных файлов, что поможет существенно сократить
    требуемое время компиляции. Прекомпилированные заголовки удобны, если у вас есть
    несколько заголовков, которые должны быть включены во все или в большинство
    ваших исходных файлов. Однако их использование полезно только в том случае, если
    сами они не меняются между компиляциями.


    Чтобы продемонстрировать вам способ сокращения времени компиляции, мы
    использовали прекомпилируемый файл size=2><stdafx.h>, который должен включать в себя все наиболее
    часто используемые заголовочные файлы. В данном случае это и файл
    <afxwin.h>, содержащий описания основных классов библиотеки и сводящий
    воедино все включаемые файлы, необходимые для базового функционирования face="Courier New" size=2>MFC, и size=2><afxext h> содержаший описания классов общего назначения,
    макросы, базовые типы данных MFC и
    подключающий стандартные библиотеки ( run-time library)  языка C,
    и  <afxdtctl.h> и face="Courier New" size=2><afxcmn.h>, где находятся компоненты
    поддержки стандартных и совместимых с Internet Explorer 4 элементов управления
    По мере изложения материала мы ближе рассмотрим классы, определяемые во
    включаемых файлах MFC. Здесь же отметим изменения, которые претерпел основной
    включаемый файл Windows size=2><windows.h>.


    Как и раньше, каждая Windows-программа должна содержать этот файл. Отличие же
    заключается в том, что в своем последнем виде он уже не представляет собой
    огромного "монстра", а разбит на четыре сравнительно небольших файла:
    <windef.h>, содержащий определения базовых типов, size=2><winbase.h>, описывающий базовые функции 32-разрядного API,
    <wingdi.h> и face="Courier New" size=2><winuser.h>, включающие объявления
    процедур GDI и size=2>USER, а также определения констант и макросов для соответствующих
    модулей системы.


    В заключение темы стандартных включаемых файлов скажу несколько слов об
    определении



    idefine VC_EXTRALEAN


    применение которого позволяет исключить из процесса компиляции редко
    используемые части заголовочных файлов Windows (для С- и С++-программ, не
    обращающихся к MFC, определение имеет вид # size=2>defme WIN32 EXTRA_LEAN).


    По материаллам сайта: www.realcoding.net

    16.02.2006

Телефон

+7 8636 237-836

Поиск

VSESMI.ru — новости в СМИ.
Один из больших по объему информации проектов, работающих под управлением HostCMS.

Tur-Hotel.ru — отзывы об отелях
На сайте представлено описание отелей, рейтинг отелей с отзывами туристов.