Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры печатать.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
379.36 Кб
Скачать

120. Упрощенное приложение. Вывод окна в приложении 23simple.Cpp. Использование afxwin.H. Создание класса, производного от cWinApp. CFrameWnd.

Упрощенное приложение.

При использовании возможностей Microsoft Foundation Classes размер текста( кода), необходимого для изображения окна можно сократить примерно втрое по сравнению с С.

Вывод окна в приложении 23SIMPLE.CPP.

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

ПРИМЕЧАНИЕ. Этот пример может также быть откомпилирован как 32-разрядное приложение. Для 32-разрядных приложений файл определения модуля не нужен.

Вот файл определения модуля 23SIMPLE.DEF

NAME 23SIMPLE

DESCRIPTION 'Establishing A Window with MFC'

EXETYPE WINDOWS

STUB 'WINSTUB.EXE'

CODE PRELOAD MOVEABLE DISCARDABLE

DATA PRELOAD MOVEABLE MULTIPLE

HEAPSIZE 2048

Когда эти файлы введены, приложение можно откомпилировать из интегрированной среды, создав файл проекта, который использует MFC.

Использование AFXWIN.H.

Все MFC-программы включают заголовочный файл AFXWIN.H. В нем, а также в различных вспомогательных файлах, содержатся описания классов, структур, переменных и других объектов MFC. Он автоматически подключает большинство заголовочных файлов, относящихся к MFC, в том числе и WINDOWS.H, в котором определены все функции Windows API и другие объекты, которые используются при традиционном программировании на С и "чистом" API.

Создание класса, производного от CWinApp.

Приложение начинается с создания класса CTheApp, производного от библиотечного класса CWinApp. Новый класс определяется программистом.

// CWinApp отвечает за реализацию цикла обработки сообщений Windows

class CTheApp : public CWinApp

{

public:

virtual BOOL Initlnstance ();

};

Класс CWinApp отвечает за реализацию цикла обработки сообщений Windows. Одно это уже избавляет программу от множества строк повторяющегося текста.

CFrameWnd.

Окно приложения является объектом класса CMainWnd, производного от CFrameWnd:

class CMainWnd : public CFrameWnd

{

public:

CMainWnd() // задания начальных параметров окна

{

Create(NULL,"Hello MFC World", /* Здравствуй, мир MFC */

WS_OVERLAPPEDWINDOW,rectDefault,NULL,NULL) ;

};

Класс CFrameWnd обеспечивает функциональные возможности Windows на основе одиночного интерфейса документа (SDI) для всплывающих окон наряду с элементами для управления окном.

Конструктор, CMainWnd(), вызывает метод Create() для задания начальных параметров окна. В этом приложении в качестве параметров задаются стиль и заголовок окна.

Первым параметром функции Create() можно задать имя класса окна, как для обычной функции Windows RegisterClass(). Как правило, в приложениях этот параметр не требуется, и здесь можно задать NULL.

121. Упрощенное приложение. Реализация метода Inltlnstance(). Конструктор. Запуск 23simple.Cpp. Упрощение структуры облегчает сопровождение.

Реализация метода Inltlnstance().

Функция InitInstance() — это виртуальная функция класса CWinApp, переопределяемая для выполнения инициализации. Собственные версии функции InitInstance() предоставляют и класс RMApp и класс SampleApp.

Эта функция реализована следующим образом:

BOOL CTheApp::InitInstance()

{

m_pMainWnd=new CMainWnd(); // вызывает конструктор CMainWnd

// содержит указатель на главное окно приложения

m_pMainWnd->ShowWindow(m_nCmdShow);

m_pMainWnd->UpdateWindow() ;

return TRUE;

}

Оператор new вызывает конструктор CMainWnd, рассмотренный в предыдущем разделе. Переменная класса m_pMain Wnd (префикс т_ указывает, что это переменная класса) содержит указатель на главное окно приложения. ShowWindow(), также функция-член класса, необходима для отображения окна на дисплее. Параметр m_nCmdShow инициализируется конструктором объекта "приложение". Функция UpdateWlndow() приводит к выводу окна на экран дисплея.,

Конструктор. ( переписать пример, который сверху и там так и подписано, где конструктор)

Последний фрагмент текста вызывает конструктор объекта "приложение":

CTheApp TheApp;

Текст приложения в этом примере очень прост и прямолинеен. Программа лишь создает окно, но не позволяет вам что-либо изобразить в нем.

Запуск 23SIMPLE.CPP. :

Результатом Запуска 23SIMPLE.CPP. будет появление пустого окна с заданным заголовком ( текст этой программы указан раньше и он нам типо пригодится потом. Для создания окон)

Упрощение структуры облегчает сопровождение.

Многократно используемые классы — главные козыри C++ в борьбе за упрощение структуры программ и облегчение их сопровождения. Библиотека MFC естественным образом расширяет язык C++, создавая впечатление, что ее классы составляют часть самого языка.