- •2. Призначення mfc. Ієрархія класів mfc (картинка иерархии http://realcoding.Net//images/mfc/gl1-5.Jpg). Спеціальні типи даних.
- •3. Організація простої mfc-програми (класи, функції). Послідовність роботи програми.
- •4. Організація обробки повідомлень. Приклади обробки повідомлень.
- •7. Створення головного меню програми (робота у редакторі ресурсів, варіанти підключення).
- •8. Поняття контексту пристрою. Застосування контекстів пристрою. Обробка повідомлення wm_paint.
- •11. Використання меню та акселераторів. Обробка пунктів меню.
- •12. Діалогові вікна модального та немодального типів. Реалізація класів. Особливості конструкторів. Приклади .
- •16. Смуги прокручування та обробка їх повідомлень. Полосы прокрутки
- •19. Встановлення та отримання характеристик тексту. Системні та логічні шрифти.
- •20. Особливості використання системних шрифтів.
- •21. Особливості використання логічних шрифтів.
- •30. Відображення рухомих об’єктів у mfc-програмах.
1. Особливості інтерфейсу Visual C++. Створення проектів типу “Win32 Application”.
Среда программирования Visual C++ состоит и следующих основных компонентов:
Редактор исходного текста
Редактор ресурсов
Компилятор С/С++
Компилятор ресурсов
Компоновщик
Отладчик
Мастер приложений (AppWizard)
Мастер классов (ClassWizard)
Галерея (Gallery)
Microsoft Foundation Class Library (MFC)
Microsoft Active Template Library (ATL)
В меню Файл, выберите Новый проект,.
На левой панели диалогового окна Создать проект, нажмите Win32, и в центральной области выберите select Консольное приложение Win32.
Введите имя нового проекта, путь к каталогу проекта, после чего нажмите кнопку ОК.
В окне Мастер приложений Win32 щелкните страницу Параметры приложения. Выберите тип приложения, которое нужно создать при помощи файла исходного кода, а затем установите флажок Пустой проект в поле Дополнительные параметры.
В обозревателе решений появится проект с тремя каталогами, которые должны содержать исходные файлы, файлы заголовков и файлы ресурсов.
2. Призначення mfc. Ієрархія класів mfc (картинка иерархии http://realcoding.Net//images/mfc/gl1-5.Jpg). Спеціальні типи даних.
MFC – это библиотека классов, которая определяет каркас приложений. Библиотека MFC содержит большую иерархию классов, написанных на C++. В ее вершине находится класс CObject, который содержит различные функции, используемые во время выполнения программы и предназначенные, в частности, для предоставления информации о текущем типе во время выполнения, для диагностики, и для сериализации. Информация о типе времени выполнения. Если указатель или ссылка ссылается на объект, производный от класса CObject, то в этом случае предусмотрен механизм определения реального типа объекта с помощью макроса RUNTIME _CLASS(). Хотя в C++ имеется механизм RTTI, механизм, реализованный в MFC, намного более эффективен по производительности.
Диагностика. Каждый класс, производный от CObject, может по запросу проверить свое внутреннее состояние и выдать диагностическую информацию. Это интенсивно используется в MFC при отладке.
Сериализации. Сериализация - это механизм, позволяющий преобразовать текущее состояние объекта в последовательный поток байт, который обычно затем записывается на диск, и восстановить состояние объекта из последовательного потока, обычно при чтении с диска. Это позволяет сохранять текущее состояние приложения на диске, и восстанавливать его при последующем запуске.
Основные классы. Некоторые классы порождаются непосредственно от CObject. Наиболее широко используемыми среди них являются CCmdTarget, CFile, CDC, CGDIObject и CMenu. Класс CCmdTarget предназначен для обработки сообщений. Класс CFile предназначен для работы с файлами. Класс CDC обеспечивает поддержку контекстов устройств. Об контекстах устройств мы будем говорить несколько позднее. В этот класс включены практически все функции графики GDI. CGDIObject является базовым классом для различных DGI-объектов, таких как перья, кисти, шрифты и другие. Класс CMenu предназначен для манипуляций с меню. От класса CCmdTarget порождается очень важный класс CWnd. Он является базовым для создания всех типов окон, включая масштабируемые ("обычные") и диалоговые, а также различные элементы управления. Наиболее широко используемым производным классом является CFrameWnd. Как Вы увидите в дальнейшем, в большинстве программ главное окно создается с помощью именно этого класса. От класса CCmdTarget, через класс CWinThread, порождается, наверное, единственный из наиболее важных классов, обращение к которому в MFC-программах происходит напрямую: С WinApp. Это один из фундаментальных классов, поскольку предназначен для создания самого приложения. В каждой программе имеется один и только один объект этого класса. Как только он будет создан, приложение начнет выполняться.
Большинство типов данных полностью соответствуют представленным в SDK, однако есть типы, специфичные только для MFC.
BOOL Булевское значение
BSTR 32-битный указатель на символ
BYTE 8-битное целое без знака
COLORREF 32-битное значение, используемое для задания цвета
DWORD 32-битное целое без знака или адрес
LONG 32-битное целое со знаком
LPARAM 32-битное значение, посылаемое в качестве параметра в оконную процедуру или функцию обратного вызова
LPCSTR 32-битный указатель на константную строку символов
LPSTR 32-битный указатель на строку символов
LPCTSTR 32-битный указатель на константную строку символов, которая переносима в Unicode и DBCS
LPTSTR 32-битный указатель на строку символов, которая переносима в Unicode и DBCS
LPVOID 32-битный указатель на неопределенный тип данных
LRESULT 32-битное значение, возвращаемое из оконной процедуры или функции обратного вызова
UINT 32-битное целое без знака для Win32 и 16-битное — для Windows 3.x
WNDPROC 32-битный указатель на оконную процедуру
WORD 16-битное целое без знака
WPARAM Значение, посылаемое в качестве параметра в оконную процедуру или функцию обратного вызова; 32-битное для Win32 и 16-битное для Windows 3.x
POSITION 32-битное целое без знака, используемое для обозначения позиции элемента в коллекции
LPCRECT 32-битный указатель на немодифицируемую структуру RECT
HINSTANCE 32-битное целое без знака для идентификации дескриптора экземпляра приложения